88
99jobs :
1010 release :
11- name : Release ${{ matrix.target }}
12- runs-on : ${{ matrix.os }}
13- strategy :
14- matrix :
15- include :
16- - target : x86_64-pc-windows-msvc
17- os : windows-latest
18- ext : .exe
19- - target : x86_64-unknown-linux-gnu
20- os : ubuntu-latest
21- ext : " "
22- - target : x86_64-unknown-linux-musl
23- os : ubuntu-latest
24- ext : " "
25- - target : aarch64-unknown-linux-gnu
26- os : ubuntu-latest
27- ext : " "
28- - target : x86_64-apple-darwin
29- os : macos-latest
30- ext : " "
31- - target : aarch64-apple-darwin
32- os : macos-latest
33- ext : " "
11+ name : Release Windows Binaries
12+ runs-on : windows-latest
3413
3514 steps :
3615 - uses : actions/checkout@v4
@@ -39,64 +18,33 @@ jobs:
3918 uses : actions-rs/toolchain@v1
4019 with :
4120 toolchain : stable
42- target : ${{ matrix.target }}
21+ target : x86_64-pc-windows-msvc
4322 override : true
4423
45- - name : Install dependencies (Linux)
46- if : matrix.os == 'ubuntu-latest'
24+ - name : Build binaries
4725 run : |
48- sudo apt-get update
49- sudo apt-get install -y pkg-config libssl-dev
50-
51- - name : Install cross (for cross-compilation)
52- if : matrix.target == 'x86_64-unknown-linux-musl' || matrix.target == 'aarch64-unknown-linux-gnu'
53- run : cargo install cross --git https://github.com/cross-rs/cross
54-
55- - name : Build binaries (native)
56- if : matrix.target == 'x86_64-pc-windows-msvc' || matrix.target == 'x86_64-unknown-linux-gnu' || matrix.target == 'x86_64-apple-darwin' || matrix.target == 'aarch64-apple-darwin'
57- run : |
58- cargo build --release --target ${{ matrix.target }} --bin nag
59- cargo build --release --target ${{ matrix.target }} --bin nagari-lsp || echo "nagari-lsp build failed"
60- cargo build --release --target ${{ matrix.target }} --bin nagari-registry || echo "nagari-registry build failed"
61- cargo build --release --target ${{ matrix.target }} --bin nagc || echo "nagc build failed"
62- cargo build --release --target ${{ matrix.target }} --bin nagrun || echo "nagrun build failed"
63-
64- - name : Build binaries (cross)
65- if : matrix.target == 'x86_64-unknown-linux-musl' || matrix.target == 'aarch64-unknown-linux-gnu'
66- run : |
67- cross build --release --target ${{ matrix.target }} --bin nag
68- cross build --release --target ${{ matrix.target }} --bin nagari-lsp || echo "nagari-lsp build failed"
69- cross build --release --target ${{ matrix.target }} --bin nagari-registry || echo "nagari-registry build failed"
70- cross build --release --target ${{ matrix.target }} --bin nagc || echo "nagc build failed"
71- cross build --release --target ${{ matrix.target }} --bin nagrun || echo "nagrun build failed"
26+ cargo build --release --target x86_64-pc-windows-msvc --bin nag
27+ cargo build --release --target x86_64-pc-windows-msvc --bin nagari-lsp || echo "nagari-lsp build failed"
28+ cargo build --release --target x86_64-pc-windows-msvc --bin nagari-registry || echo "nagari-registry build failed"
29+ cargo build --release --target x86_64-pc-windows-msvc --bin nagc || echo "nagc build failed"
30+ cargo build --release --target x86_64-pc-windows-msvc --bin nagrun || echo "nagrun build failed"
7231
7332 - name : Create release directory
74- run : mkdir -p release
33+ run : mkdir release
7534
76- - name : Package binaries (Windows)
77- if : matrix.os == 'windows-latest'
35+ - name : Package binaries
7836 shell : cmd
7937 run : |
80- copy "target\${{ matrix.target }}\release\nag.exe" "release\nag-${{ matrix.target }}.exe" 2>nul || echo nag not found
81- copy "target\${{ matrix.target }}\release\nagari-lsp.exe" "release\nagari-lsp-${{ matrix.target }}.exe" 2>nul || echo nagari-lsp not found
82- copy "target\${{ matrix.target }}\release\nagari-registry.exe" "release\nagari-registry-${{ matrix.target }}.exe" 2>nul || echo nagari-registry not found
83- copy "target\${{ matrix.target }}\release\nagc.exe" "release\nagc-${{ matrix.target }}.exe" 2>nul || echo nagc not found
84- copy "target\${{ matrix.target }}\release\nagrun.exe" "release\nagrun-${{ matrix.target }}.exe" 2>nul || echo nagrun not found
85-
86- - name : Package binaries (Unix)
87- if : matrix.os != 'windows-latest'
88- run : |
89- cp target/${{ matrix.target }}/release/nag release/nag-${{ matrix.target }} 2>/dev/null || echo "nag not found"
90- cp target/${{ matrix.target }}/release/nagari-lsp release/nagari-lsp-${{ matrix.target }} 2>/dev/null || echo "nagari-lsp not found"
91- cp target/${{ matrix.target }}/release/nagari-registry release/nagari-registry-${{ matrix.target }} 2>/dev/null || echo "nagari-registry not found"
92- cp target/${{ matrix.target }}/release/nagc release/nagc-${{ matrix.target }} 2>/dev/null || echo "nagc not found"
93- cp target/${{ matrix.target }}/release/nagrun release/nagrun-${{ matrix.target }} 2>/dev/null || echo "nagrun not found"
94- chmod +x release/* 2>/dev/null || true
38+ copy "target\x86_64-pc-windows-msvc\release\nag.exe" "release\nag-windows.exe" 2>nul || echo nag not found
39+ copy "target\x86_64-pc-windows-msvc\release\nagari-lsp.exe" "release\nagari-lsp-windows.exe" 2>nul || echo nagari-lsp not found
40+ copy "target\x86_64-pc-windows-msvc\release\nagari-registry.exe" "release\nagari-registry-windows.exe" 2>nul || echo nagari-registry not found
41+ copy "target\x86_64-pc-windows-msvc\release\nagc.exe" "release\nagc-windows.exe" 2>nul || echo nagc not found
42+ copy "target\x86_64-pc-windows-msvc\release\nagrun.exe" "release\nagrun-windows.exe" 2>nul || echo nagrun not found
9543
9644 - name : Upload artifacts
9745 uses : actions/upload-artifact@v4
9846 with :
99- name : nagari-binaries-${{ matrix.target }}
47+ name : nagari-windows-binaries
10048 path : release/
10149
10250 create-release :
@@ -112,12 +60,7 @@ jobs:
11260 - name : Create release
11361 uses : softprops/action-gh-release@v1
11462 with :
115- files : |
116- nagari-binaries-*/nag-*
117- nagari-binaries-*/nagari-lsp-*
118- nagari-binaries-*/nagari-registry-*
119- nagari-binaries-*/nagc-*
120- nagari-binaries-*/nagrun-*
63+ files : nagari-windows-binaries/*
12164 draft : false
12265 prerelease : false
12366 generate_release_notes : true
0 commit comments