6
6
- ' v*' # 当推送带有 v* 前缀的 tag 时触发工作流
7
7
8
8
jobs :
9
- build :
10
- name : Build CLI for All Platforms
11
- runs-on : ${{ matrix.os }}
12
- strategy :
13
- matrix :
14
- os : [macos-latest, windows-latest]
15
- target :
16
- - x86_64-apple-darwin
17
- - x86_64-pc-windows-gnu
18
-
19
- steps :
20
- - name : Checkout repository
21
- uses : actions/checkout@v3
22
-
23
- - name : Cache cargo registry
24
- uses : actions/cache@v3
25
- with :
26
- path : ~/.cargo/registry
27
- key : ${{ runner.os }}-cargo-registry
28
- restore-keys : |
29
- ${{ runner.os }}-cargo-registry
30
-
31
- - name : Set up Rust
32
- uses : actions-rs/toolchain@v1
33
- with :
34
- toolchain : stable
35
- target : ${{ matrix.target }}
36
- override : true
37
-
38
- - name : Build with cargo
39
- run : cargo build --release --target ${{ matrix.target }}
40
-
41
- - name : Upload binary artifact
42
- uses : actions/upload-artifact@v3
43
- with :
44
- name : ${{ matrix.target }}-cli
45
- path : |
46
- target/${{ matrix.target }}/release/gcs
47
-
48
9
release :
49
- name : Create GitHub Release
10
+ name : release ${{ matrix.target }}
50
11
runs-on : ubuntu-latest
51
- needs : build
12
+ strategy :
13
+ fail-fast : false
14
+ matrix :
15
+ include :
16
+ - target : x86_64-pc-windows-gnu
17
+ archive : zip
18
+ - target : x86_64-unknown-linux-musl
19
+ archive : tar.gz tar.xz tar.zst
20
+ - target : x86_64-apple-darwin
21
+ archive : zip
52
22
steps :
53
- - name : Checkout repository
54
- uses : actions/checkout@v3
55
-
56
- - name : Create GitHub Release
57
- id : create_release
58
- uses : actions/create-release@v1
23
+ - uses : actions/checkout@master
24
+ - name : Compile and release
25
+ uses : rust-build/rust-build.action@v1.4.5
59
26
env :
60
27
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
61
28
with :
62
- tag_name : ${{ github.ref }}
63
- release_name : Release ${{ github.ref }}
64
- draft : false
65
- prerelease : false
66
-
67
- - name : Upload Release Asset (macOS)
68
- uses : actions/upload-release-asset@v1
69
- with :
70
- upload_url : ${{ steps.create_release.outputs.upload_url }}
71
- asset_path : target/x86_64-apple-darwin/release/gcs
72
- asset_name : gcs
73
- asset_content_type : application/octet-stream
74
-
75
- - name : Upload Release Asset (Windows)
76
- uses : actions/upload-release-asset@v1
77
- with :
78
- upload_url : ${{ steps.create_release.outputs.upload_url }}
79
- asset_path : target/x86_64-pc-windows-gnu/release/gcs.exe
80
- asset_name : gcs.exe
81
- asset_content_type : application/octet-stream
29
+ RUSTTARGET : ${{ matrix.target }}
30
+ ARCHIVE_TYPES : ${{ matrix.archive }}
0 commit comments