-
Notifications
You must be signed in to change notification settings - Fork 189
145 lines (134 loc) · 4.12 KB
/
Copy pathrust.yml
File metadata and controls
145 lines (134 loc) · 4.12 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
--- # rust-miniscript CI: If you edit this file please update README.md
on: # yamllint disable-line rule:truthy
push:
branches:
- master
- 'test-ci/**'
pull_request:
name: Continuous integration
jobs:
Stable: # 2 jobs, one per lock file.
name: Test - stable toolchain
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
dep: [minimal, recent]
steps:
- name: "Checkout repo"
uses: actions/checkout@v6
- uses: ./.github/actions/setup-rbmt
- name: "Run tests"
run: cargo rbmt test --toolchain stable --lock-file ${{ matrix.dep }}
Nightly: # 2 jobs, one per lock file.
name: Test - nightly toolchain
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
dep: [minimal, recent]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-rbmt
- name: "Run tests"
run: cargo rbmt test --toolchain nightly --lock-file ${{ matrix.dep }}
MSRV: # 2 jobs, one per lock file.
name: Test - 1.63.0 toolchain
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
dep: [minimal, recent]
steps:
- uses: actions/checkout@v6
- name: "Free disk space"
uses: endersonmenezes/free-disk-space@v3
with:
remove_android: true
remove_dotnet: true
remove_haskell: true
- uses: ./.github/actions/setup-rbmt
- name: "Run tests"
run: cargo rbmt test --toolchain msrv --lock-file ${{ matrix.dep }}
Lint:
name: Lint - nightly toolchain
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
dep: [recent]
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-rbmt
- name: "Run lint"
run: cargo rbmt lint
Docs:
name: Docs - stable toolchain
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-rbmt
- name: "Build docs"
run: cargo rbmt docs
Docsrs:
name: Docs - nightly toolchain
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-rbmt
- name: "Build docs.rs docs"
run: cargo rbmt docsrs
Bench:
name: Bench - nightly toolchain
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-rbmt
- name: "Run bench"
run: cargo rbmt bench
Format: # 1 job, run cargo fmt directly.
name: Format - nightly toolchain
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-rbmt
- name: "Check formatting"
run: cargo rbmt fmt --check
Integration:
name: Integration tests - stable toolchain
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/setup-rbmt
- name: "Generate integration lock file"
run: RUSTUP_TOOLCHAIN="$(cargo rbmt toolchains --stable)" cargo generate-lockfile --manifest-path bitcoind-tests/Cargo.toml
- name: "Run integration tests"
run: cargo rbmt integration
Embedded:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up QEMU
run: sudo apt update && sudo apt install -y qemu-system-arm gcc-arm-none-eabi
- name: Checkout Toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
components: rust-src
target: thumbv7m-none-eabi
- name: Run
env:
RUSTFLAGS: "-C link-arg=-Tlink.x"
CARGO_TARGET_THUMBV7M_NONE_EABI_RUNNER: "qemu-system-arm -cpu cortex-m3 -machine mps2-an385 -nographic -semihosting-config enable=on,target=native -kernel"
run: cd embedded && cargo run --target thumbv7m-none-eabi --release