Skip to content

Commit 8a1ccd9

Browse files
committed
Merge #98: get CI up to date; pin nightly rust version; fix some clippy lints
a4ec6fb ci: fix doclinks (Andrew Poelstra) 8dd5e75 clippy: enable a bunch of casting and safety lints (Andrew Poelstra) 92fc444 ci: copy workflow and contrib/ scripts from rust-elements (Andrew Poelstra) c62e83b clippy: introduce nightly-version and fix all clippy issues with it (Andrew Poelstra) Pull request description: Should get CI passing. Then we can rebase #97. ACKs for top commit: RCasatta: utACK a4ec6fb Tree-SHA512: 078f28230466f8bac28bb2cc3071852151cc2d1f1e4b7921e2edd2cf91f668d3109130db21290afd4170f40192bcb3130cde69b3ba90cbc0a15fff3f1e8c3f5c
2 parents ffc3ea0 + a4ec6fb commit 8a1ccd9

File tree

35 files changed

+1368
-206
lines changed

35 files changed

+1368
-206
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Checkout Maintainer Tools
2+
description: Checks out the rust-bitcoin maintainer tools repo
3+
runs:
4+
using: "composite"
5+
steps:
6+
- name: Checkout maintainer tools
7+
uses: actions/checkout@v4
8+
with:
9+
repository: rust-bitcoin/rust-bitcoin-maintainer-tools
10+
ref: f92b2766865ce5327eca5cf72f86ceaa6be58ca4
11+
path: maintainer-tools

.github/workflows/rust.yml

Lines changed: 157 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,183 @@
1-
on:
1+
on: # yamllint disable-line rule:truthy
2+
pull_request:
23
push:
34
branches:
45
- master
5-
pull_request: {}
6+
- 'test-ci/**'
67

78
name: Continuous integration
89

910
jobs:
10-
lint_fuzz_stable:
11-
name: Lint
11+
Prepare:
1212
runs-on: ubuntu-latest
13+
outputs:
14+
nightly_version: ${{ steps.read_toolchain.outputs.nightly_version }}
15+
msrv_version: ${{ steps.read_msrv.outputs.msrv_version }}
1316
steps:
14-
- name: Checkout Crate
15-
uses: actions/checkout@v2
16-
- name: Install hongfuzz dependancies
17-
run: sudo apt-get update -y && sudo apt install -y build-essential binutils-dev libunwind-dev libblocksruntime-dev liblzma-dev
18-
- name: Checkout Toolchain
19-
uses: actions-rs/toolchain@v1
20-
with:
21-
profile: minimal
22-
toolchain: 1.63.0
23-
override: true
24-
- name: Running fuzzer
25-
env:
26-
DO_LINT: true
27-
run: ./contrib/test.sh
17+
- name: "Checkout repo"
18+
uses: actions/checkout@v4
19+
- name: "Read nightly version"
20+
id: read_toolchain
21+
run: |
22+
set -euo pipefail
23+
version=$(cat nightly-version)
24+
echo "nightly_version=$version" >> $GITHUB_OUTPUT
25+
- name: Read MSRV from clippy.toml
26+
id: read_msrv
27+
run: |
28+
set -euo pipefail
29+
msrv=$(grep '^msrv *= *"' clippy.toml | sed -E 's/.*"([^"]+)".*/\1/')
30+
echo "msrv_version=$msrv" >> "$GITHUB_OUTPUT"
31+
32+
Stable:
33+
name: Test - stable toolchain
34+
runs-on: ubuntu-latest
35+
strategy:
36+
fail-fast: false
37+
steps:
38+
- name: "Checkout repo"
39+
uses: actions/checkout@v4
40+
- name: "Checkout maintainer tools"
41+
uses: ./.github/actions/checkout-maintainer-tools
42+
- name: "Select toolchain"
43+
uses: dtolnay/rust-toolchain@stable
44+
- name: "Set dependencies"
45+
run: cp Cargo-latest.lock Cargo.lock
46+
- name: "Run test script"
47+
run: ./maintainer-tools/ci/run_task.sh stable
2848

2949
Nightly:
30-
name: Nightly - Bench + Docs + Fmt
50+
name: Test - nightly toolchain
51+
needs: Prepare
3152
runs-on: ubuntu-latest
53+
strategy:
54+
fail-fast: false
3255
steps:
33-
- name: Checkout Crate
34-
uses: actions/checkout@v2
35-
- name: Checkout Toolchain
36-
uses: actions-rs/toolchain@v1
56+
- name: "Checkout repo"
57+
uses: actions/checkout@v4
58+
- name: "Checkout maintainer tools"
59+
uses: ./.github/actions/checkout-maintainer-tools
60+
- name: "Select toolchain"
61+
uses: dtolnay/rust-toolchain@v1
3762
with:
38-
profile: minimal
39-
toolchain: nightly
40-
override: true
41-
- name: Running benchmarks
42-
env:
43-
DO_BENCH: true
44-
run: ./contrib/test.sh
45-
- name: Building docs
46-
env:
47-
DO_DOCS: true
48-
run: ./contrib/test.sh
63+
toolchain: ${{ needs.Prepare.outputs.nightly_version }}
64+
- name: "Set dependencies"
65+
run: cp Cargo-latest.lock Cargo.lock
66+
- name: "Run test script"
67+
run: ./maintainer-tools/ci/run_task.sh nightly
4968

50-
Int-tests:
51-
name: Integration tests
69+
MSRV:
70+
name: Test - MSRV
71+
needs: Prepare
5272
runs-on: ubuntu-latest
73+
strategy:
74+
fail-fast: false
5375
steps:
54-
- name: Checkout Crate
55-
uses: actions/checkout@v2
56-
- name: Checkout Toolchain
57-
uses: actions-rs/toolchain@v1
76+
- name: "Checkout repo"
77+
uses: actions/checkout@v4
78+
- name: "Checkout maintainer tools"
79+
uses: ./.github/actions/checkout-maintainer-tools
80+
- name: "Select toolchain"
81+
uses: dtolnay/rust-toolchain@stable
5882
with:
59-
profile: minimal
60-
toolchain: stable
61-
override: true
62-
- name: Running integration tests
63-
env:
64-
DO_BITCOIND_TESTS: true
65-
run: ./contrib/test.sh
83+
toolchain: ${{ needs.Prepare.outputs.msrv_version }}
84+
- name: "Set dependencies"
85+
run: cp Cargo-latest.lock Cargo.lock
86+
- name: "Run test script"
87+
run: ./maintainer-tools/ci/run_task.sh msrv
6688

67-
Tests:
68-
name: Tests
89+
Lint:
90+
name: Lint - nightly toolchain
91+
needs: Prepare
6992
runs-on: ubuntu-latest
7093
strategy:
7194
fail-fast: false
7295
matrix:
73-
rust: [stable, beta, nightly, 1.63.0]
96+
dep: [recent]
97+
steps:
98+
- name: "Checkout repo"
99+
uses: actions/checkout@v4
100+
- name: "Checkout maintainer tools"
101+
uses: ./.github/actions/checkout-maintainer-tools
102+
- name: "Select toolchain"
103+
uses: dtolnay/rust-toolchain@v1
104+
with:
105+
toolchain: ${{ needs.Prepare.outputs.nightly_version }}
106+
- name: Install clippy
107+
run: rustup component add clippy
108+
- name: "Set dependencies"
109+
run: cp Cargo-latest.lock Cargo.lock
110+
- name: "Run test script"
111+
run: ./maintainer-tools/ci/run_task.sh lint
112+
113+
Docs:
114+
name: Docs - stable toolchain
115+
runs-on: ubuntu-latest
116+
strategy:
117+
fail-fast: false
118+
matrix:
119+
dep: [recent]
120+
steps:
121+
- name: "Checkout repo"
122+
uses: actions/checkout@v4
123+
- name: "Checkout maintainer tools"
124+
uses: ./.github/actions/checkout-maintainer-tools
125+
- name: "Select toolchain"
126+
uses: dtolnay/rust-toolchain@stable
127+
- name: "Set dependencies"
128+
run: cp Cargo-latest.lock Cargo.lock
129+
- name: "Run test script"
130+
run: ./maintainer-tools/ci/run_task.sh docs
131+
132+
Docsrs:
133+
name: Docs - nightly toolchain
134+
needs: Prepare
135+
runs-on: ubuntu-latest
136+
strategy:
137+
fail-fast: false
138+
matrix:
139+
dep: [recent]
140+
steps:
141+
- name: "Checkout repo"
142+
uses: actions/checkout@v4
143+
- name: "Checkout maintainer tools"
144+
uses: ./.github/actions/checkout-maintainer-tools
145+
- name: "Select toolchain"
146+
uses: dtolnay/rust-toolchain@v1
147+
with:
148+
toolchain: ${{ needs.Prepare.outputs.nightly_version }}
149+
- name: "Set dependencies"
150+
run: cp Cargo-latest.lock Cargo.lock
151+
- name: "Run test script"
152+
run: ./maintainer-tools/ci/run_task.sh docsrs
153+
154+
# Format:
155+
# name: Format - nightly toolchain
156+
# needs: Prepare
157+
# runs-on: ubuntu-latest
158+
# strategy:
159+
# fail-fast: false
160+
# steps:
161+
# - name: "Checkout repo"
162+
# uses: actions/checkout@v4
163+
# - name: "Select toolchain"
164+
# uses: dtolnay/rust-toolchain@v1
165+
# with:
166+
# toolchain: ${{ needs.Prepare.outputs.nightly_version }}
167+
# - name: "Install rustfmt"
168+
# run: rustup component add rustfmt
169+
# - name: "Check formatting"
170+
# run: cargo fmt --all -- --check
171+
172+
Wasm:
173+
name: Check WASM
174+
runs-on: ubuntu-latest
175+
strategy:
176+
fail-fast: false
74177
steps:
75178
- name: Checkout Crate
76-
uses: actions/checkout@v2
179+
uses: actions/checkout@v3
77180
- name: Checkout Toolchain
78-
uses: actions-rs/toolchain@v1
79-
with:
80-
profile: minimal
81-
toolchain: ${{ matrix.rust }}
82-
override: true
83-
- name: Running cargo
84-
env:
85-
DO_FEATURE_MATRIX: true
86-
run: ./contrib/test.sh
181+
uses: dtolnay/rust-toolchain@stable
182+
- run: rustup target add wasm32-unknown-unknown
183+
- run: cargo check --target wasm32-unknown-unknown

0 commit comments

Comments
 (0)