1
1
name : CD - Release new version
2
+
2
3
on :
3
4
workflow_dispatch :
5
+
6
+ permissions :
7
+ contents : write
8
+
4
9
jobs :
5
10
build :
6
11
runs-on : ubuntu-latest
7
12
steps :
8
13
- 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
+
15
24
- uses : actions/github-script@v7
16
25
id : releaseVersion
17
26
with :
27
+ result-encoding : string
18
28
script : |
19
29
const fs = require('fs');
20
- const hookVersion = require('./package.json').version
21
- core.setOutput('version', hookVersion);
30
+ return require('./package.json').version
31
+
22
32
- name : Zip up releases
23
33
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
+
26
37
- name : Calculate SHA
27
38
id : sha
28
39
shell : bash
29
40
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}')
31
42
echo "Docker SHA: $sha_docker"
32
43
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}')
34
45
echo "K8s SHA: $sha_k8s"
35
46
echo "k8s-sha=$sha_k8s" >> $GITHUB_OUTPUT
36
- - name : replace SHA
47
+
48
+ - name : Create release notes
37
49
id : releaseNotes
38
50
uses : actions/github-script@v7
39
51
with :
40
52
script : |
41
53
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 }}')
43
55
releaseNotes = releaseNotes.replace(/<DOCKER_SHA>/g, '${{ steps.sha.outputs.docker-sha }}')
44
56
releaseNotes = releaseNotes.replace(/<K8S_SHA>/g, '${{ steps.sha.outputs.k8s-sha }}')
45
57
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
50
61
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