Skip to content

Commit 8729611

Browse files
author
qpzmV
committed
update release CI
1 parent 324fe1b commit 8729611

File tree

1 file changed

+49
-58
lines changed

1 file changed

+49
-58
lines changed

.github/workflows/release.yml

Lines changed: 49 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -9,98 +9,89 @@ permissions:
99
contents: write
1010

1111
jobs:
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

Comments
 (0)