@@ -2,19 +2,20 @@ name: Release
2
2
3
3
on :
4
4
push :
5
- tags :
6
- - " v*"
5
+ tags : ["v*"]
7
6
8
7
permissions :
9
8
contents : write # Only permission needed for releases
10
9
11
10
jobs :
12
11
create-release :
13
12
runs-on : ubuntu-latest
13
+ outputs :
14
+ release_notes : ${{ steps.release-notes.outputs.NOTES }}
14
15
steps :
15
16
- uses : actions/checkout@v4
16
17
with :
17
- fetch-depth : 0
18
+ fetch-depth : 0
18
19
19
20
- name : Extract Release Notes
20
21
id : release-notes
@@ -33,44 +34,44 @@ jobs:
33
34
needs : create-release
34
35
strategy :
35
36
matrix :
36
- include :
37
+ platform :
37
38
- os : ubuntu-latest
38
39
target : x86_64-unknown-linux-gnu
39
- binary_name : zparse
40
- - os : macos-latest
40
+ asset_name : linux
41
+ - os : macos-latest # For Intel Macs (x86_64)
41
42
target : x86_64-apple-darwin
42
- binary_name : zparse
43
+ asset_name : darwin
44
+ - os : macos-latest # For Apple Silicon Macs (ARM64)
45
+ target : aarch64-apple-darwin
46
+ asset_name : darwin
43
47
- os : windows-latest
44
48
target : x86_64-pc-windows-msvc
45
- binary_name : zparse.exe
49
+ asset_name : windows
50
+ env :
51
+ BINARY_NAME : zparse-${{ matrix.platform.asset_name }}${{ matrix.platform.os == 'windows-latest' && '.exe' || '' }}
46
52
47
- runs-on : ${{ matrix.os }}
53
+ runs-on : ${{ matrix.platform. os }}
48
54
steps :
49
55
- uses : actions/checkout@v4
50
56
51
- - name : Setup Rust
52
- uses : dtolnay/rust-toolchain@stable
57
+ - uses : dtolnay/rust-toolchain@stable
53
58
with :
54
- targets : ${{ matrix.target }}
59
+ targets : ${{ matrix.platform. target }}
55
60
56
61
- name : Build Binary
57
- run : cargo build --release --target ${{ matrix.target }}
62
+ run : cargo build --release --target ${{ matrix.platform. target }}
58
63
59
64
- name : Prepare Asset
60
65
shell : bash
61
66
run : |
62
67
mkdir -p release
63
- if [ "${{ matrix.os }}" = "windows-latest" ]; then
64
- cp target/${{ matrix.target }}/release/${{ matrix.binary_name }} release/
65
- else
66
- cp target/${{ matrix.target }}/release/${{ matrix.binary_name }} release/
67
- fi
68
+ cp target/${{ matrix.platform.target }}/release/$BINARY_NAME \
69
+ release/$BINARY_NAME
68
70
69
71
- name : Upload Release Asset
70
72
uses : softprops/action-gh-release@v1
71
73
with :
72
- files : release/${{ matrix.binary_name }}
73
- body_path : ${{ needs.create-release.outputs.NOTES }}
74
+ files : release/${{ env.BINARY_NAME }}
74
75
draft : false
75
76
prerelease : false
76
77
env :
0 commit comments