44 release :
55 types : [published]
66 workflow_dispatch :
7+ inputs :
8+ tag :
9+ description : ' Тег релиза (например, v0.5.0). Если пусто — будет использоваться текущий тег релиза.'
10+ required : false
711
812jobs :
913 build-windows :
@@ -17,10 +21,10 @@ jobs:
1721 toolchain : stable
1822 override : true
1923
20- - name : Build Netter .exe
24+ - name : Build netter .exe
2125 run : cargo build --release
2226
23- - name : Build Netter_service .exe
27+ - name : Build netter_service .exe
2428 run : cargo build --release -p netter_service
2529
2630 - name : Prepare artifacts
@@ -29,15 +33,29 @@ jobs:
2933 copy target\release\netter.exe dist\
3034 copy target\release\netter_service.exe dist\
3135
36+ - name : Determine tag name
37+ id : get_tag
38+ run : |
39+ if ($env:GITHUB_EVENT_NAME -eq 'release') {
40+ $tag = "${env:GITHUB_REF_NAME}"
41+ } elseif ($env:GITHUB_EVENT_NAME -eq 'workflow_dispatch' -and "${{ github.event.inputs.tag }}") {
42+ $tag = "${{ github.event.inputs.tag }}"
43+ } else {
44+ Write-Host "ERROR: Тег релиза не определён!"
45+ exit 1
46+ }
47+ echo "tag=$tag" | Out-File -FilePath $env:GITHUB_OUTPUT -Encoding utf8 -Append
48+
3249 - name : Make zip archive
3350 run : |
34- $tag = "${{ github.ref_name }}"
51+ $tag = "${{ steps.get_tag.outputs.tag }}"
3552 Compress-Archive -Path dist\* -DestinationPath "netter-$tag-windows-x86_64.zip"
3653 shell : pwsh
3754
38- - name : Upload binaries
55+ - name : Upload binaries to release
3956 uses : softprops/action-gh-release@v2
4057 with :
58+ tag_name : ${{ steps.get_tag.outputs.tag }}
4159 files : netter-*-windows-x86_64.zip
4260 env :
4361 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
@@ -53,10 +71,10 @@ jobs:
5371 toolchain : stable
5472 override : true
5573
56- - name : Build Netter
74+ - name : Build netter
5775 run : cargo build --release
5876
59- - name : Build Netter_service
77+ - name : Build netter_service
6078 run : cargo build --release -p netter_service
6179
6280 - name : Prepare artifacts
@@ -65,14 +83,29 @@ jobs:
6583 cp target/release/netter dist/
6684 cp target/release/netter_service dist/
6785
86+ - name : Determine tag name
87+ id : get_tag
88+ run : |
89+ if [ "${GITHUB_EVENT_NAME}" = "release" ]; then
90+ tag="${GITHUB_REF_NAME}"
91+ elif [ "${GITHUB_EVENT_NAME}" = "workflow_dispatch" ] && [ -n "${{ github.event.inputs.tag }}" ]; then
92+ tag="${{ github.event.inputs.tag }}"
93+ else
94+ echo "ERROR: Тег релиза не определён!"
95+ exit 1
96+ fi
97+ echo "tag=$tag" >> $GITHUB_OUTPUT
98+
6899 - name : Make tar.gz archive
69100 run : |
70- tag="${GITHUB_REF_NAME}"
71- tar -czvf "netter-${tag}-linux-x86_64.tar.gz" -C dist netter netter_service
101+ tag="${{ steps.get_tag.outputs.tag }}"
102+ cd dist
103+ tar -czvf "../netter-${tag}-linux-x86_64.tar.gz" netter netter_service
72104
73- - name : Upload binaries
105+ - name : Upload binaries to release
74106 uses : softprops/action-gh-release@v2
75107 with :
108+ tag_name : ${{ steps.get_tag.outputs.tag }}
76109 files : netter-*-linux-x86_64.tar.gz
77110 env :
78- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
111+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments