11name : CD - Release new version
2+
23on :
34 workflow_dispatch :
5+
6+ permissions :
7+ contents : write
8+
49jobs :
510 build :
611 runs-on : ubuntu-latest
712 steps :
813 - uses : actions/checkout@v4
9- - run : npm install
10- name : Install dependencies
11- - run : npm run bootstrap
12- name : Bootstrap the packages
13- - run : npm run build-all
14- name : Build packages
14+
15+ - name : Install dependencies
16+ run : npm install
17+
18+ - name : Bootstrap the packages
19+ run : npm run bootstrap
20+
21+ - name : Build packages
22+ run : npm run build-all
23+
1524 - uses : actions/github-script@v7
1625 id : releaseVersion
1726 with :
27+ result-encoding : string
1828 script : |
1929 const fs = require('fs');
20- const hookVersion = require('./package.json').version
21- core.setOutput('version', hookVersion);
30+ return require('./package.json').version
31+
2232 - name : Zip up releases
2333 run : |
24- zip -r -j actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.version }}.zip packages/docker/dist
25- zip -r -j actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.version }}.zip packages/k8s/dist
34+ zip -r -j actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.result }}.zip packages/docker/dist
35+ zip -r -j actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.result }}.zip packages/k8s/dist
36+
2637 - name : Calculate SHA
2738 id : sha
2839 shell : bash
2940 run : |
30- sha_docker=$(sha256sum actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.version }}.zip | awk '{print $1}')
41+ sha_docker=$(sha256sum actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.result }}.zip | awk '{print $1}')
3142 echo "Docker SHA: $sha_docker"
3243 echo "docker-sha=$sha_docker" >> $GITHUB_OUTPUT
33- sha_k8s=$(sha256sum actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.version }}.zip | awk '{print $1}')
44+ sha_k8s=$(sha256sum actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.result }}.zip | awk '{print $1}')
3445 echo "K8s SHA: $sha_k8s"
3546 echo "k8s-sha=$sha_k8s" >> $GITHUB_OUTPUT
36- - name : replace SHA
47+
48+ - name : Create release notes
3749 id : releaseNotes
3850 uses : actions/github-script@v7
3951 with :
4052 script : |
4153 const fs = require('fs');
42- var releaseNotes = fs.readFileSync('${{ github.workspace }}/releaseNotes.md', 'utf8').replace(/<HOOK_VERSION>/g, '${{ steps.releaseVersion.outputs.version }}')
54+ var releaseNotes = fs.readFileSync('${{ github.workspace }}/releaseNotes.md', 'utf8').replace(/<HOOK_VERSION>/g, '${{ steps.releaseVersion.outputs.result }}')
4355 releaseNotes = releaseNotes.replace(/<DOCKER_SHA>/g, '${{ steps.sha.outputs.docker-sha }}')
4456 releaseNotes = releaseNotes.replace(/<K8S_SHA>/g, '${{ steps.sha.outputs.k8s-sha }}')
4557 console.log(releaseNotes)
46- core.setOutput('note', releaseNotes);
47- - uses : actions/create-release@v1
48- id : createRelease
49- name : Create ${{ steps.releaseVersion.outputs.version }} Hook Release
58+ fs.writeFileSync('${{ github.workspace }}/finalReleaseNotes.md', releaseNotes);
59+
60+ - name : Create ${{ steps.releaseVersion.outputs.result }} Hook Release
5061 env :
51- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
52- with :
53- tag_name : " v${{ steps.releaseVersion.outputs.version }}"
54- release_name : " v${{ steps.releaseVersion.outputs.version }}"
55- body : |
56- ${{ steps.releaseNotes.outputs.note }}
57- - name : Upload K8s hooks
58- uses : actions/upload-release-asset@v1
59- env :
60- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
61- with :
62- upload_url : ${{ steps.createRelease.outputs.upload_url }}
63- asset_path : ${{ github.workspace }}/actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.version }}.zip
64- asset_name : actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.version }}.zip
65- asset_content_type : application/octet-stream
66- - name : Upload docker hooks
67- uses : actions/upload-release-asset@v1
68- env :
69- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
70- with :
71- upload_url : ${{ steps.createRelease.outputs.upload_url }}
72- asset_path : ${{ github.workspace }}/actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.version }}.zip
73- asset_name : actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.version }}.zip
74- asset_content_type : application/octet-stream
62+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
63+ run : |
64+ gh release create v${{ steps.releaseVersion.outputs.result }} \
65+ --title "v${{ steps.releaseVersion.outputs.result }}" \
66+ --repo ${{ github.repository }} \
67+ --notes-file ${{ github.workspace }}/finalReleaseNotes.md \
68+ --latest \
69+ ${{ github.workspace }}/actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.result }}.zip \
70+ ${{ github.workspace }}/actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.result }}.zip
0 commit comments