@@ -9,98 +9,89 @@ permissions:
99 contents : write
1010
1111jobs :
12- create-release :
13- runs-on : ubuntu-latest
14- outputs :
15- upload_url : ${{ steps.create_release.outputs.upload_url }}
16- steps :
17- - name : Create Release
18- id : create_release
19- uses : actions/create-release@v1
20- env :
21- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
22- with :
23- tag_name : ${{ github.ref }}
24- release_name : Release ${{ github.ref }}
25- draft : false
26- prerelease : false
27-
2812 build :
2913 strategy :
3014 matrix :
3115 include :
3216 - os : ubuntu-latest
33- target : x86_64-unknown-linux-gnu
34- name : movefmt-${{ github.ref_name }}-x86_64-unknown-linux-gnu
35- archive : tar.gz
17+ rust_target : x86_64-unknown-linux-gnu
18+ binary_name : movefmt-${{ github.ref_name }}-x86_64-unknown-linux-gnu
3619
3720 - os : ubuntu-latest
38- target : aarch64-unknown-linux-gnu
39- name : movefmt-${{ github.ref_name }}-aarch64-unknown-linux-gnu
40- archive : tar.gz
21+ rust_target : aarch64-unknown-linux-gnu
22+ binary_name : movefmt-${{ github.ref_name }}-aarch64-unknown-linux-gnu
4123
4224 - os : macos-latest
43- target : x86_64-apple-darwin
44- name : movefmt-${{ github.ref_name }}-x86_64-apple-darwin
45- archive : tar.gz
25+ rust_target : x86_64-apple-darwin
26+ binary_name : movefmt-${{ github.ref_name }}-x86_64-apple-darwin
4627
4728 - os : macos-latest
48- target : aarch64-apple-darwin
49- name : movefmt-${{ github.ref_name }}-aarch64-apple-darwin
50- archive : tar.gz
29+ rust_target : aarch64-apple-darwin
30+ binary_name : movefmt-${{ github.ref_name }}-aarch64-apple-darwin
5131
5232 - os : windows-latest
53- target : x86_64-pc-windows-msvc
54- name : movefmt-${{ github.ref_name }}-x86_64-windows.exe
55- archive : zip
33+ rust_target : x86_64-pc-windows-msvc
34+ binary_name : movefmt-${{ github.ref_name }}-x86_64-windows.exe
5635
5736 runs-on : ${{ matrix.os }}
58-
5937 steps :
6038 - name : Checkout code
6139 uses : actions/checkout@v4
6240
6341 - name : Install Rust
6442 uses : dtolnay/rust-toolchain@stable
65- with :
66- targets : ${{ matrix.target }}
6743
6844 - name : Configure cross-compilation (Linux ARM64)
69- if : matrix.target == 'aarch64-unknown-linux-gnu'
45+ if : matrix.rust_target == 'aarch64-unknown-linux-gnu'
7046 run : |
7147 sudo apt-get update
7248 sudo apt-get install gcc-aarch64-linux-gnu
7349 echo '[target.aarch64-unknown-linux-gnu]' >> ~/.cargo/config.toml
7450 echo 'linker = "aarch64-linux-gnu-gcc"' >> ~/.cargo/config.toml
7551
76- - name : Build for target
52+ - name : Install Rust toolchain
53+ run : |
54+ rustup update --no-self-update stable
55+ rustup component add rust-src
56+ rustup target add ${{ matrix.rust_target }}
57+
58+ - name : Build target
7759 run : |
78- cargo build --target ${{ matrix.target }} --release
60+ cargo build --target ${{ matrix.rust_target }} --release
7961 env :
8062 RUSTFLAGS : " -C strip=symbols"
8163
82- - name : Prepare artifact (Linux/macOS)
83- if : matrix.archive == 'tar.gz' && runner.os != 'Windows'
64+ - name : Prepare artifact
8465 run : |
85- cp target/${{ matrix.target }}/release/movefmt movefmt
86- chmod +x movefmt
87- mv movefmt ${{ matrix.name }}
88- tar czf ${{ matrix.name }}.tar.gz ${{ matrix.name }}
66+ if [[ "${{ matrix.os }}" == "windows-latest" ]]; then
67+ cp target/${{ matrix.rust_target }}/release/movefmt.exe ${{ matrix.binary_name }}
68+ else
69+ cp target/${{ matrix.rust_target }}/release/movefmt ${{ matrix.binary_name }}
70+ chmod +x ${{ matrix.binary_name }}
71+ fi
72+ shell : bash
8973
90- - name : Prepare artifact (Windows)
91- if : matrix.archive == 'zip' || runner.os == 'Windows'
92- run : |
93- copy target\\${{ matrix.target }}\\release\\movefmt.exe movefmt.exe
94- ren movefmt.exe ${{ matrix.name }}
95- Compress-Archive -Path ${{ matrix.name }} -DestinationPath ${{ matrix.name }}.zip
74+ - name : Upload artifact
75+ uses : actions/upload-artifact@v4
76+ with :
77+ name : ${{ matrix.binary_name }}
78+ path : ${{ matrix.binary_name }}
9679
97- - name : Upload binaries to release
98- uses : actions/upload-release-asset@v1
99- env :
100- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
80+ release :
81+ needs : build
82+ runs-on : ubuntu-latest
83+ steps :
84+ - name : Download all artifacts
85+ uses : actions/download-artifact@v4
86+
87+ - name : Create Release
88+ uses : softprops/action-gh-release@v1
10189 with :
102- upload_url : ${{ needs.create-release.outputs.upload_url }}
103- asset_path : ${{ matrix.name }}.${{ matrix.archive }}
104- asset_name : ${{ matrix.name }}.${{ matrix.archive }}
105- asset_content_type : application/octet-stream
106- needs : create-release
90+ tag_name : ${{ github.ref_name }}
91+ name : movefmt-${{ github.ref_name }}
92+ draft : false
93+ prerelease : false
94+ files : |
95+ */*
96+
97+
0 commit comments