-
Notifications
You must be signed in to change notification settings - Fork 1
153 lines (140 loc) · 4.17 KB
/
Copy pathrust.yml
File metadata and controls
153 lines (140 loc) · 4.17 KB
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
143
144
145
146
147
148
149
150
151
152
153
name: Rust
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
env:
CARGO_TERM_COLOR: always
jobs:
test:
name: Test on ${{ matrix.os }} (${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
strategy:
matrix:
include:
- os: linux
arch: x86_64
runner: ubuntu-latest
- os: macos
arch: x86_64
runner: macos-latest
- os: macos
arch: aarch64
runner: macos-14
- os: netbsd
arch: x86_64
runner: ubuntu-latest
- os: freebsd
arch: x86_64
runner: ubuntu-latest
- os: openbsd
arch: x86_64
runner: ubuntu-latest
- os: linux
arch: s390x
runner: ubuntu-latest
- os: alpine
arch: x86_64
runner: ubuntu-latest
- os: solaris
arch: x86_64
runner: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Test on Linux x86_64
if: matrix.os == 'linux' && matrix.arch == 'x86_64'
run: |
cargo build --verbose
cargo test --verbose
cargo doc --verbose
- name: Test on macOS
if: matrix.os == 'macos'
run: |
cargo build --verbose
cargo test --verbose
cargo doc --verbose
- name: Test on FreeBSD
if: matrix.os == 'freebsd'
uses: vmactions/freebsd-vm@v1
with:
usesh: true
mem: 2048
prepare: |
pkg install -y curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
echo '. ~/.cargo/env' >> ~/.profile
run: |
. ~/.cargo/env
cargo build --verbose
cargo test --verbose
cargo doc --verbose
- name: Test on OpenBSD
if: matrix.os == 'openbsd'
uses: vmactions/openbsd-vm@v1
with:
usesh: true
mem: 2048
prepare: |
pkg_add curl
pkg_add rust
run: |
cargo build --verbose
cargo test --verbose
cargo doc --verbose
- name: Test in NetBSD
if: matrix.os == 'netbsd'
uses: vmactions/netbsd-vm@v1
with:
usesh: true
mem: 2048
prepare: |
/usr/sbin/pkg_add curl
/usr/sbin/pkg_add rust
run: |
cargo build --verbose
cargo test --verbose
cargo doc --verbose
- name: Test on Linux s390x (big-endian)
if: matrix.os == 'linux' && matrix.arch == 's390x'
uses: uraimo/run-on-arch-action@v3
with:
arch: s390x
distro: ubuntu22.04
install: |
apt-get update -q -y
apt-get install -q -y curl build-essential
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source ~/.cargo/env
run: |
source ~/.cargo/env
cargo build --verbose
cargo test --verbose
cargo doc --verbose
- name: Test on Alpine in Docker
if: matrix.os == 'alpine' && matrix.arch == 'x86_64'
run: |
docker run --rm -i -v "$PWD":/workspace -w /workspace alpine:latest sh -c "
apk update &&
apk add curl build-base bash &&
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y &&
. /root/.cargo/env &&
cargo build --verbose &&
cargo test --verbose
cargo doc --verbose
"
- name: Test on Solaris
if: matrix.os == 'solaris'
uses: vmactions/solaris-vm@v1
with:
usesh: true
mem: 2048
release: "11.4-gcc-14"
prepare: |
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/psumbera/rustup/refs/heads/solaris-rustup/rustup-init.sh | sh -s -- -y
echo '. ~/.cargo/env' >> ~/.profile
run: |
. ~/.cargo/env
cargo build --verbose
cargo test --verbose
cargo doc --verbose