Cleanup action for release (#56)
* Removed empty try catch * Initial commit * Compiled to js * Escape slash for nodejs * Updating getStableHelmVersion test * Removing old versions of run * Added comment on getLatestHelmVersion and variable for helm release url to command * Pushing recent changes before computer reset * Latest getLatestHelmVersion iteration * Removed test * Testing async test * getLatestHelmVersion refactor * fixed method to access helm releses JSON * Edited comment on isValidVersion * Removed old integration tests * Small temp test * Removed IntegrationTests path * Updated package-lock.json and removed unused dep * Integration testing * Fixed if statement in run command * Added exit * Double brackets for new test * Added version confirmation output and different check for version * Helm 3.7.2 test * added env to workflow paths * adjusted env in workflow paths * 3.5.0 tests * Requested changes * Fixed downloadHelm test * Clean up for release * Updated CODEOWNERS * Updated CODEOWNERS
This commit is contained in:
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
@ -1 +1 @@
|
||||
* @ds-ms
|
||||
* @Azure/aksatlanta
|
55
.github/workflows/release-pr.yml
vendored
Normal file
55
.github/workflows/release-pr.yml
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
name: "Create release PR"
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
release:
|
||||
description: "Define release version (ex: v1, v2, v3)"
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
createPullRequest:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Check if remote branch exists
|
||||
env:
|
||||
BRANCH: releases/${{ github.event.inputs.release }}
|
||||
run: |
|
||||
echo "##[set-output name=exists;]$(echo $(if [[ -z $(git ls-remote --heads origin ${BRANCH}) ]]; then echo false; else echo true; fi;))"
|
||||
id: extract-branch-status
|
||||
# these two only need to occur if the branch exists
|
||||
- name: Checkout proper branch
|
||||
if: ${{ steps.extract-branch-status.outputs.exists == 'true' }}
|
||||
env:
|
||||
BRANCH: releases/${{ github.event.inputs.release }}
|
||||
run: git checkout ${BRANCH}
|
||||
- name: Reset promotion branch
|
||||
if: ${{ steps.extract-branch-status.outputs.exists == 'true' }}
|
||||
run: |
|
||||
git fetch origin master:master
|
||||
git reset --hard master
|
||||
- name: Install packages
|
||||
run: |
|
||||
rm -rf node_modules/
|
||||
npm install --no-bin-links
|
||||
npm run build
|
||||
- name: Remove node_modules from gitignore
|
||||
run: |
|
||||
sed -i '/node_modules/d' ./.gitignore
|
||||
- name: Create branch
|
||||
uses: peterjgrainger/action-create-branch@v2.0.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
branch: releases/${{ github.event.inputs.release }}
|
||||
- name: Create pull request
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
commit-message: Add node modules and new code for release
|
||||
title: ${{ github.event.inputs.release }} new release
|
||||
base: releases/${{ github.event.inputs.release }}
|
||||
branch: create-release
|
77
.github/workflows/tag-and-release.yml
vendored
Normal file
77
.github/workflows/tag-and-release.yml
vendored
Normal file
@ -0,0 +1,77 @@
|
||||
name: "Tag and create release draft"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- releases/*
|
||||
|
||||
jobs:
|
||||
gh_tagged_release:
|
||||
runs-on: "ubuntu-latest"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Test release
|
||||
run: |
|
||||
sudo npm install n
|
||||
sudo n latest
|
||||
npm test
|
||||
- name: Get branch ending
|
||||
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF##*/} | sed 's:.*/::')"
|
||||
id: extract-branch
|
||||
- name: Get tags
|
||||
run: |
|
||||
echo "##[set-output name=tags;]$(echo $(git tag))"
|
||||
id: extract-tags
|
||||
- name: Get latest tag
|
||||
uses: actions/github-script@v5
|
||||
env:
|
||||
TAGS: ${{ steps.extract-tags.outputs.tags }}
|
||||
BRANCH: ${{ steps.extract-branch.outputs.branch }}
|
||||
with:
|
||||
script: |
|
||||
const tags = process.env["TAGS"]
|
||||
.split(" ")
|
||||
.map((x) => x.trim());
|
||||
const branch = process.env["BRANCH"];
|
||||
const splitTag = (x) =>
|
||||
x
|
||||
.substring(branch.length + 1)
|
||||
.split(".")
|
||||
.map((x) => Number(x));
|
||||
function compareTags(nums1, nums2, position = 0) {
|
||||
if (nums1.length < position && nums2.length < position) return nums2;
|
||||
const num1 = splitTag(nums1)[position] || 0;
|
||||
const num2 = splitTag(nums2)[position] || 0;
|
||||
if (num1 === num2) return compareTags(nums1, nums2, position + 1);
|
||||
else if (num1 > num2) return nums1;
|
||||
else return nums2;
|
||||
}
|
||||
const branchTags = tags.filter((tag) => tag.startsWith(branch));
|
||||
if (branchTags.length < 1) return branch + ".-1"
|
||||
return branchTags.reduce((prev, curr) => compareTags(prev, curr));
|
||||
result-encoding: string
|
||||
id: get-latest-tag
|
||||
- name: Get new tag
|
||||
uses: actions/github-script@v5
|
||||
env:
|
||||
PREV: ${{ steps.get-latest-tag.outputs.result }}
|
||||
with:
|
||||
script: |
|
||||
let version = process.env["PREV"]
|
||||
if (!version.includes(".")) version += ".0"; // case of v1 or v2
|
||||
const prefix = /^([a-zA-Z]+)/.exec(version)[0];
|
||||
const numbers = version.substring(prefix.length);
|
||||
let split = numbers.split(".");
|
||||
split[split.length - 1] = parseInt(split[split.length - 1]) + 1;
|
||||
return prefix + split.join(".");
|
||||
result-encoding: string
|
||||
id: get-new-tag
|
||||
- uses: "marvinpinto/action-automatic-releases@v1.2.1"
|
||||
with:
|
||||
title: ${{ steps.get-new-tag.outputs.result }} release
|
||||
automatic_release_tag: ${{ steps.get-new-tag.outputs.result }}
|
||||
repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
draft: true
|
@ -5,10 +5,6 @@ inputs:
|
||||
description: 'Version of helm'
|
||||
required: true
|
||||
default: 'latest'
|
||||
token:
|
||||
description: 'Github token'
|
||||
default: ${{ github.token }}
|
||||
required: true
|
||||
outputs:
|
||||
helm-path:
|
||||
description: 'Path to the cached helm binary'
|
||||
|
Reference in New Issue
Block a user