-
Notifications
You must be signed in to change notification settings - Fork 37
130 lines (119 loc) · 4.32 KB
/
rust.yml
File metadata and controls
130 lines (119 loc) · 4.32 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
on: [push, pull_request]
name: Continuous Integration
permissions:
contents: read
jobs:
Test: # 6 jobs: 3 toolchains × 2 lock files.
name: Test - ${{ matrix.toolchain }} toolchain (${{ matrix.dep }})
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
dep: [recent]
toolchain: [stable, nightly, msrv]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- uses: rust-bitcoin/rust-bitcoin-maintainer-tools/.github/actions/setup-rbmt@af3c2868415b17eedc808da6d0589e10b7482660 # v0.1.0
- uses: Swatinem/rust-cache@v2
- name: Run ${{ matrix.toolchain }} tests
run: |
export ELEMENTSD_EXE="$PWD/elementsd-tests/bin/elementsd"
if [ "${{ matrix.toolchain }}" = "msrv" ]; then
MSRV="$(cargo rbmt toolchains --msrv)"
cp "Cargo-${{ matrix.dep }}.lock" Cargo.lock
cargo +"$MSRV" test --locked
else
cargo rbmt --lock-file ${{ matrix.dep }} test --toolchain ${{ matrix.toolchain }}
fi
Lint:
name: Lint - nightly toolchain
runs-on: ubuntu-24.04
steps:
- name: Checkout Crate
uses: actions/checkout@v4
- uses: rust-bitcoin/rust-bitcoin-maintainer-tools/.github/actions/setup-rbmt@af3c2868415b17eedc808da6d0589e10b7482660 # v0.1.0
- uses: Swatinem/rust-cache@v2
- name: Run lints
run: cargo rbmt --lock-file recent lint
Docs:
name: Docs - stable toolchain
runs-on: ubuntu-24.04
steps:
- name: Checkout Crate
uses: actions/checkout@v4
- uses: rust-bitcoin/rust-bitcoin-maintainer-tools/.github/actions/setup-rbmt@af3c2868415b17eedc808da6d0589e10b7482660 # v0.1.0
- uses: Swatinem/rust-cache@v2
- name: Run doc tests
run: cargo rbmt --lock-file recent docs
Docsrs:
name: Docs - nightly toolchain
runs-on: ubuntu-24.04
steps:
- name: Checkout Crate
uses: actions/checkout@v4
- uses: rust-bitcoin/rust-bitcoin-maintainer-tools/.github/actions/setup-rbmt@af3c2868415b17eedc808da6d0589e10b7482660 # v0.1.0
- uses: Swatinem/rust-cache@v2
- name: Run docsrs tests
run: cargo rbmt --lock-file recent docsrs
# Format: # 1 job, run cargo fmt directly.
# name: Format - nightly toolchain
# runs-on: ubuntu-24.04
# steps:
# - name: Checkout Crate
# uses: actions/checkout@v4
# - uses: rust-bitcoin/rust-bitcoin-maintainer-tools/.github/actions/setup-rbmt@af3c2868415b17eedc808da6d0589e10b7482660 # v0.1.0
# - name: Check formatting
# run: cargo rbmt --lock-file recent fmt --check
Bench:
name: Bench - nightly toolchain
runs-on: ubuntu-24.04
steps:
- name: Checkout Crate
uses: actions/checkout@v4
- uses: rust-bitcoin/rust-bitcoin-maintainer-tools/.github/actions/setup-rbmt@af3c2868415b17eedc808da6d0589e10b7482660 # v0.1.0
- uses: Swatinem/rust-cache@v2
- name: Run benches
run: cargo rbmt --lock-file recent bench
Arch32bit:
name: Test 32-bit version
runs-on: ubuntu-24.04
steps:
- name: Checkout Crate
uses: actions/checkout@v4
- name: Checkout Toolchain
uses: dtolnay/rust-toolchain@stable
- name: Add architecture i386
run: sudo dpkg --add-architecture i386
- name: Install i686 gcc
run: sudo apt-get update -y && sudo apt-get install -y gcc-multilib
- name: Install target
run: rustup target add i686-unknown-linux-gnu
- name: Run tests on i686
run: cargo test --target i686-unknown-linux-gnu
Cross:
name: Cross test
runs-on: ubuntu-24.04
steps:
- name: Checkout Crate
uses: actions/checkout@v4
- name: Checkout Toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install target
run: rustup target add s390x-unknown-linux-gnu
- name: install cross
run: cargo install cross --locked
- name: run cross test
run: cross test --target s390x-unknown-linux-gnu
Wasm:
name: Check WASM
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: Checkout Crate
uses: actions/checkout@v3
- name: Checkout Toolchain
uses: dtolnay/rust-toolchain@stable
- run: rustup target add wasm32-unknown-unknown
- run: cargo check --target wasm32-unknown-unknown