1- name : release
1+ name : Release
22
33on :
44 push :
55 tags :
6- - ' * '
6+ - v[0-9]+.*
77
88jobs :
9- build_release :
9+ create-release :
1010 runs-on : ubuntu-latest
1111 steps :
12- - name : Checkout Repository
13- uses : actions/checkout@v2
12+ - uses : actions/checkout@v4
13+ - uses : taiki-e/create-gh-release-action@v1
1414 with :
15- fetch-depth : 0
16-
17- - name : Install Rust Toolchain
18- uses : actions-rs/toolchain@v1
19- with :
20- toolchain : stable
21- profile : minimal
22- override : true
23-
24- - name : Build and Extract Version
25- run : |
26- cargo build --release
27- echo "::set-output name=version::$(./target/release/snip --version)"
28- id : version
29-
30- - name : Build Artifacts for Different Platforms
31- run : |
32- rustup target add x86_64-unknown-linux-gnu
33- rustup target add x86_64-pc-windows-gnu
34- rustup target add x86_64-apple-darwin
35- cargo build --target x86_64-unknown-linux-gnu --release
36- cargo build --target x86_64-pc-windows-gnu --release
37- cargo build --target x86_64-apple-darwin --release
38-
39- - name : Create Release
40- uses : actions/create-release@v1
41- id : create_release
42- with :
43- draft : false
44- prerelease : false
45- release_name : ${{ steps.version.outputs.version }}
46- tag_name : ${{ github.ref }}
47- body_path : CHANGELOG.md
48- env :
49- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
50-
51- - name : Upload Linux Artifact
52- uses : actions/upload-release-asset@v1
53- env :
54- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
55- with :
56- upload_url : ${{ steps.create_release.outputs.upload_url }}
57- asset_path : ./target/x86_64-unknown-linux-gnu/release/snip
58- asset_name : snip-linux-x86_64
59- asset_content_type : application/octet-stream
60-
61- - name : Upload Darwin Artifact
62- uses : actions/upload-release-asset@v1
63- env :
64- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
65- with :
66- upload_url : ${{ steps.create_release.outputs.upload_url }}
67- asset_path : ./target/x86_64-apple-darwin/release/snip
68- asset_name : snip-darwin-x86_64
69- asset_content_type : application/octet-stream
70-
71- - name : Upload Windows Artifact
72- uses : actions/upload-release-asset@v1
73- env :
74- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
15+ # (optional)
16+ changelog : CHANGELOG.md
17+ # (required)
18+ token : ${{ secrets.GITHUB_TOKEN }}
19+
20+ upload-assets :
21+ needs : create-release
22+ strategy :
23+ matrix :
24+ include :
25+ - target : x86_64-unknown-linux-gnu
26+ os : ubuntu-latest
27+ build-tool : cargo-zigbuild
28+ # cargo-zigbuild's glibc version suffix is also supported.
29+ - target : aarch64-unknown-linux-gnu.2.17
30+ os : ubuntu-latest
31+ build-tool : cargo-zigbuild
32+ - target : aarch64-apple-darwin
33+ os : macos-latest
34+ build-tool : cargo-zigbuild
35+ runs-on : ${{ matrix.os }}
36+ steps :
37+ - uses : actions/checkout@v4
38+ - uses : taiki-e/upload-rust-binary-action@v1
7539 with :
76- upload_url : ${{ steps.create_release.outputs.upload_url }}
77- asset_path : ./target/x86_64-pc-windows-gnu/release/snip.exe
78- asset_name : snip-windows.exe
79- asset_content_type : application/octet-stream
40+ # (required)
41+ bin : snip
42+ # (optional) Target triple, default is host triple.
43+ target : ${{ matrix.target }}
44+ # (optional) Tool to build binaries (cargo, cross, or cargo-zigbuild)
45+ build-tool : ${{ matrix.build-tool }}
46+ # (required) GitHub token for uploading assets to GitHub Releases.
47+ token : ${{ secrets.GITHUB_TOKEN }}
0 commit comments