-
Notifications
You must be signed in to change notification settings - Fork 1
143 lines (114 loc) · 3.58 KB
/
compile.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
name: Compile Binaries
on:
workflow_dispatch:
#push:
#branches: [ "master" ]
env:
CARGO_TERM_COLOR: always
jobs:
build-windows-x64:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Build executable
run: cargo build --release
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}
path: ./target/release/nightingale.exe
compression-level: 0
build-windows-x86:
#runs-on: ubuntu-latest
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Install x86 toolchain
continue-on-error: true # Sometimes the toolchain is already installed
run: |
rustup install stable-i686-pc-windows-msvc
rustup target add i686-pc-windows-msvc
- name: Build executable
run: rustup run stable-i686-pc-windows-msvc cargo build --release
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}
path: ./target/release/nightingale.exe
compression-level: 0
build-linux:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config:
- name: x64
toolchain: x86_64-unknown-linux-gnu
default: true
- name: x86
toolchain: i686-unknown-linux-gnu
default: false
steps:
- uses: actions/checkout@v4
- name: Install system dependencies
run: sudo apt-get install -y gcc-multilib
- name: Install rust toolchain
if: ${{ !matrix.config.default }}
continue-on-error: true # Sometimes the toolchain is already installed
run: |
rustup install stable-${{ matrix.config.toolchain }} --force-non-host
rustup target add ${{ matrix.config.toolchain }}
- name: Build executable
run: rustup run stable-${{ matrix.config.toolchain }} cargo build --release
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}-${{ matrix.config.name }}
path: ./target/release/nightingale
compression-level: 0
build-linux-arm:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config:
- name: arm64
toolchain: aarch64-unknown-linux-gnu
- name: armv7
toolchain: armv7-unknown-linux-gnueabihf
steps:
- uses: actions/checkout@v4
- name: Build binary
uses: houseabsolute/actions-rust-cross@v0
with:
command: build
args: "--release"
target: ${{ matrix.config.toolchain }}
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}-${{ matrix.config.name }}
path: ./target/${{ matrix.config.toolchain }}/release/nightingale
compression-level: 0
build-macos:
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- name: AppleSilicon
toolchain: aarch64-apple-darwin
os: macos-14
- name: Intel
toolchain: x86_64-apple-darwin
os: macos-latest
steps:
- uses: actions/checkout@v4
- name: Build executable
run: cargo build --release
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.job }}-${{ matrix.config.name }}
path: ./target/release/nightingale
compression-level: 0