|
1 | | ---- # rust-psbt CI: If you edit this file please update README.md |
| 1 | +--- |
| 2 | +# rust-psbt CI |
| 3 | +# |
| 4 | +# Keep total parallel jobs under 20, the GitHub free tier limit. |
| 5 | +# Current structure uses matrix strategy for test jobs (Stable/Nightly/MSRV) |
| 6 | +# with 2 lock files each (minimal/recent) which each count as a job. |
| 7 | +# |
| 8 | +# ref: https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration |
| 9 | + |
2 | 10 | on: # yamllint disable-line rule:truthy |
3 | 11 | push: |
4 | 12 | branches: |
5 | 13 | - master |
6 | | - - 'test-ci/**' |
7 | 14 | pull_request: |
8 | 15 |
|
9 | | -name: Continuous integration |
| 16 | +name: Continuous Integration |
10 | 17 |
|
11 | 18 | jobs: |
12 | 19 | Stable: # 2 jobs, one per lock file. |
|
19 | 26 | steps: |
20 | 27 | - uses: actions/checkout@v6 |
21 | 28 | - uses: rust-bitcoin/rust-bitcoin-maintainer-tools/.github/actions/setup-rbmt@master |
| 29 | + id: setup |
22 | 30 | - name: "Run tests" |
23 | | - run: cargo rbmt test stable --lock-file ${{ matrix.dep }} |
| 31 | + run: cargo +${{ steps.setup.outputs.stable-version }} rbmt test stable --lock-file ${{ matrix.dep }} |
24 | 32 |
|
25 | 33 | Nightly: # 2 jobs, one per lock file. |
26 | 34 | name: Test - nightly toolchain |
@@ -52,52 +60,33 @@ jobs: |
52 | 60 | run: cargo +1.74.0 rbmt test msrv --lock-file ${{ matrix.dep }} |
53 | 61 |
|
54 | 62 | Lint: |
55 | | - name: Lint - nightly toolchain |
| 63 | + name: Format and Lint |
56 | 64 | runs-on: ubuntu-latest |
57 | 65 | strategy: |
58 | 66 | fail-fast: false |
59 | 67 | steps: |
60 | 68 | - uses: actions/checkout@v6 |
61 | 69 | - uses: rust-bitcoin/rust-bitcoin-maintainer-tools/.github/actions/setup-rbmt@master |
62 | 70 | id: setup |
| 71 | + - name: "Check formatting" |
| 72 | + run: cargo +${{ steps.setup.outputs.nightly-version }} fmt --all -- --check |
63 | 73 | - name: "Run lint" |
64 | 74 | run: cargo +${{ steps.setup.outputs.nightly-version }} rbmt lint |
65 | 75 |
|
66 | 76 | Docs: |
67 | | - name: Docs - stable toolchain |
68 | | - runs-on: ubuntu-latest |
69 | | - strategy: |
70 | | - fail-fast: false |
71 | | - steps: |
72 | | - - uses: actions/checkout@v6 |
73 | | - - uses: rust-bitcoin/rust-bitcoin-maintainer-tools/.github/actions/setup-rbmt@master |
74 | | - - name: "Build docs" |
75 | | - run: cargo rbmt docs |
76 | | - |
77 | | - Docsrs: |
78 | | - name: Docs - nightly toolchain |
| 77 | + name: Docs and Docs.rs |
79 | 78 | runs-on: ubuntu-latest |
80 | 79 | strategy: |
81 | 80 | fail-fast: false |
82 | 81 | steps: |
83 | 82 | - uses: actions/checkout@v6 |
84 | 83 | - uses: rust-bitcoin/rust-bitcoin-maintainer-tools/.github/actions/setup-rbmt@master |
85 | 84 | id: setup |
| 85 | + - name: "Build docs" |
| 86 | + run: cargo +${{ steps.setup.outputs.stable-version }} rbmt docs |
86 | 87 | - name: "Build docs.rs docs" |
87 | 88 | run: cargo +${{ steps.setup.outputs.nightly-version }} rbmt docsrs |
88 | 89 |
|
89 | | - Format: # 1 job, run cargo fmt directly. |
90 | | - name: Format - nightly toolchain |
91 | | - runs-on: ubuntu-latest |
92 | | - strategy: |
93 | | - fail-fast: false |
94 | | - steps: |
95 | | - - uses: actions/checkout@v6 |
96 | | - - uses: rust-bitcoin/rust-bitcoin-maintainer-tools/.github/actions/setup-rbmt@master |
97 | | - id: setup |
98 | | - - name: "Check formatting" |
99 | | - run: cargo +${{ steps.setup.outputs.nightly-version }} fmt --all -- --check |
100 | | - |
101 | 90 | Integration: # 1 job, run bitcoin core integration tests using rbmt. |
102 | 91 | name: Integration - against bitcoind |
103 | 92 | runs-on: ubuntu-latest |
|
0 commit comments