-
Notifications
You must be signed in to change notification settings - Fork 135
133 lines (123 loc) · 3.6 KB
/
test.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
name: "Test Build"
on:
push:
branches:
- main
- development
paths:
- ".github/**/*"
- "**.rs"
- "**/Cargo.toml"
- "**/Cargo.lock"
pull_request:
branches:
- main
- development
paths:
- ".github/**/*"
- "**.rs"
- "**/Cargo.toml"
- "**/Cargo.lock"
jobs:
publish:
name: Test on ${{ matrix.os }} for ${{ matrix.target }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
target:
- x86_64-unknown-linux-gnu
- aarch64-unknown-linux-musl
- armv7-unknown-linux-musleabihf
- arm-unknown-linux-musleabihf
- x86_64-pc-windows-msvc
- x86_64-apple-darwin
- aarch64-apple-darwin
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
cross: false
strip: true
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
cross: true
strip: false
- os: ubuntu-latest
target: armv7-unknown-linux-musleabihf
cross: true
strip: false
- os: ubuntu-latest
target: arm-unknown-linux-musleabihf
cross: true
strip: false
- os: windows-latest
target: x86_64-pc-windows-msvc
cross: false
strip: true
- os: macos-latest
target: x86_64-apple-darwin
cross: false
strip: true
- os: macos-latest
target: aarch64-apple-darwin
cross: true
strip: true
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: llvm-tools-preview
target: ${{ matrix.target }}
- name: Install cargo-nextest
uses: taiki-e/install-action@v2
with:
tool: nextest
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-${{ matrix.target }}-
- name: cargo build
uses: actions-rs/cargo@v1
with:
command: build
args: --target=${{ matrix.target }}
use-cross: ${{ matrix.cross }}
- name: cargo test
uses: actions-rs/cargo@v1
if: ${{ !matrix.cross }}
env:
NEXTEST_PROFILE: ci # defined in .config/nextest.toml
with:
command: nextest
args: run --workspace --target=${{ matrix.target }}
use-cross: ${{ matrix.cross }}
# The test result artifacts are used by the test-report.yaml workflow.
- name: upload test results
uses: actions/upload-artifact@v3
if: ${{ !matrix.cross }}
with:
name: Test results (${{ matrix.target }})
path: target/nextest/ci/junit.xml
# the event file (containing the JSON payload for the webhook triggering this
# workflow) is needed to generate test result reports with the correct
# context. See the test-report.yaml workflow for details.
event_file:
name: "Event File"
runs-on: ubuntu-latest
steps:
- name: Upload
uses: actions/upload-artifact@v3
with:
name: Event File
path: ${{ github.event_path }}