1- name : Rust
1+ name : Rust Release
22
33on :
4- workflow_dispatch
5-
6- env :
7- CARGO_TERM_COLOR : always
4+ workflow_dispatch :
85
96permissions :
107 contents : write
11- actions : write
128
13- jobs :
14- build :
9+ env :
10+ CARGO_TERM_COLOR : always
1511
12+ jobs :
13+ release :
1614 runs-on : ubuntu-22.04
1715
1816 steps :
19- - uses : actions/checkout@v4
20-
21- - name : Cache Cargo Dependencies
22- uses : Swatinem/rust-cache@v2
23-
24- - name : Build
25- run : cargo build -r
26-
27- - name : Generate Tag Name
28- run : echo "release_name=Release v$(grep -i 'version' Cargo.toml | awk -F'"' '{print $2}')" >> $GITHUB_ENV
29-
30- - name : Generate Tag Name
31- run : echo "tag_name=release-$(grep -i 'version' Cargo.toml | awk -F'"' '{print $2}')" >> $GITHUB_ENV
32-
33- - name : Create Release
34- id : create_release
35- uses : actions/create-release@v1
36- env :
37- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
38- with :
39- draft : false
40- prerelease : false
41- release_name : ${{ env.release_name }}
42- tag_name : ${{ env.tag_name }}
43- body : |
44- Automated release
45-
46- - name : Upload Release Asset
47- id : upload-release-asset
48- uses : actions/upload-release-asset@v1
49- env :
50- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
51- with :
52- upload_url : ${{ steps.create_release.outputs.upload_url }}
53- asset_path : target/release/codlinux
54- asset_name : codlinux
55- asset_content_type : application/octet-stream
17+ - uses : actions/checkout@v4
18+
19+ - name : Cache Cargo Dependencies
20+ uses : Swatinem/rust-cache@v2
21+
22+ - name : Build Release
23+ run : cargo build --release
24+
25+ - name : Determine Version
26+ id : ver
27+ run : |
28+ ver=$(grep -i '^version' Cargo.toml \
29+ | head -n1 \
30+ | cut -d\" -f2)
31+ echo "RELEASE_NAME=Release v${ver}" >> $GITHUB_ENV
32+ echo "TAG_NAME=release-${ver}" >> $GITHUB_ENV
33+
34+ - name : Create GitHub Release
35+ uses : ncipollo/release-action@v1
36+ with :
37+ tag : ${{ env.TAG_NAME }}
38+ name : ${{ env.RELEASE_NAME }}
39+ body : " Automated release of v${{ steps.ver.outputs.ver }}"
40+ draft : false
41+ prerelease : false
42+ artifacts : " target/release/codlinux"
43+ env :
44+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments