From 49eefd4db14185204765ee7a993ade5679b0a1e3 Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Wed, 13 May 2026 11:33:12 +1000 Subject: [PATCH 1/5] CI: Delete readme This was written when I had no idea what I was talking about. The 20 job limit is per project so the readme is total bollocks. Delete the readme and all the comments about number of jobs. --- .github/workflows/README.md | 25 ------------------------- .github/workflows/rust.yml | 10 +++++----- 2 files changed, 5 insertions(+), 30 deletions(-) delete mode 100644 .github/workflows/README.md diff --git a/.github/workflows/README.md b/.github/workflows/README.md deleted file mode 100644 index 8ea19f23c..000000000 --- a/.github/workflows/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# rust-miniscript workflow notes - -We are attempting to run max 20 parallel jobs using GitHub actions (usage limit for free tier). - -ref: https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration - -The minimal/recent lock files are handled by CI (`rust.yml`). - -## Jobs - -Run from `rust.yml` unless stated otherwise. Total 11 jobs. - -1. `Stable - minimal` -2. `Stable - recent` -3. `Nightly - minimal` -4. `Nightly - recent` -5. `MSRV - minimal` -6. `MSRV - recent` -7. `Lint` -8. `Docs` -9. `Docsrs` -10. `Bench` -11. `Format` -12. `Int-tests` -13. `Embedded` diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 22e302617..887a9922b 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -9,7 +9,7 @@ on: # yamllint disable-line rule:truthy name: Continuous integration jobs: - Stable: # 2 jobs, one per lock file. + Stable: name: Test - stable toolchain runs-on: ubuntu-latest strategy: @@ -25,7 +25,7 @@ jobs: - name: "Run tests" run: cargo rbmt test stable --lock-file ${{ matrix.dep }} - Nightly: # 2 jobs, one per lock file. + Nightly: name: Test - nightly toolchain runs-on: ubuntu-latest strategy: @@ -40,7 +40,7 @@ jobs: - name: "Run tests" run: cargo rbmt test nightly --lock-file ${{ matrix.dep }} - MSRV: # 2 jobs, one per lock file. + MSRV: name: Test - 1.63.0 toolchain runs-on: ubuntu-latest strategy: @@ -116,7 +116,7 @@ jobs: - name: "Run bench" run: cargo rbmt bench - Format: # 1 job, run cargo fmt directly. + Format: name: Format - nightly toolchain runs-on: ubuntu-latest strategy: @@ -130,7 +130,7 @@ jobs: - name: "Check formatting" run: cargo fmt --all -- --check - Integration: # 1 job for each bitcoind version we support. + Integration: name: Integration tests - stable toolchain runs-on: ubuntu-latest strategy: From 482baf02edfa2a72aa442c412b274812849b56da Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Wed, 13 May 2026 11:38:43 +1000 Subject: [PATCH 2/5] CI: Run test using ubuntu-26.04 A new LTS release of Ubuntu came out last month, lets use it. --- .github/workflows/rust.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 887a9922b..1fa8246bd 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -11,7 +11,7 @@ name: Continuous integration jobs: Stable: name: Test - stable toolchain - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -27,7 +27,7 @@ jobs: Nightly: name: Test - nightly toolchain - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -42,7 +42,7 @@ jobs: MSRV: name: Test - 1.63.0 toolchain - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -63,7 +63,7 @@ jobs: Lint: name: Lint - nightly toolchain - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -79,7 +79,7 @@ jobs: Docs: name: Docs - stable toolchain - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 strategy: fail-fast: false steps: @@ -92,7 +92,7 @@ jobs: Docsrs: name: Docs - nightly toolchain - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 strategy: fail-fast: false steps: @@ -105,7 +105,7 @@ jobs: Bench: name: Bench - nightly toolchain - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 strategy: fail-fast: false steps: @@ -118,7 +118,7 @@ jobs: Format: name: Format - nightly toolchain - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 strategy: fail-fast: false steps: @@ -132,7 +132,7 @@ jobs: Integration: name: Integration tests - stable toolchain - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -162,7 +162,7 @@ jobs: run: cargo rbmt integration Embedded: - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 steps: - name: Checkout uses: actions/checkout@v2 From e52dc23155cd045b87530db1aa2613db7bf29f7e Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Wed, 13 May 2026 11:36:55 +1000 Subject: [PATCH 3/5] CI: Update Test job Mirror `rust-bitcoin` and run the stable and msrv tests in a single job. --- .github/workflows/rust.yml | 35 ++++++++--------------------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 1fa8246bd..cb6c64661 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -10,20 +10,22 @@ name: Continuous integration jobs: Stable: - name: Test - stable toolchain + name: Test - ${{ matrix.toolchain }} toolchain, ${{ matrix.dep }} deps runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: + toolchain: [stable, msrv] dep: [minimal, recent] steps: - - name: "Checkout repo" - uses: actions/checkout@v6 - - uses: ./.github/actions/prepare + # Cleaning up github bloat so that test feature artifacts don't run out of disk. + - uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: - toolchain: stable + persist-credentials: false + - uses: ./.github/actions/setup-rbmt - name: "Run tests" - run: cargo rbmt test stable --lock-file ${{ matrix.dep }} + run: cargo rbmt test --toolchain ${{ matrix.toolchain }} --lock-file ${{ matrix.dep }} Nightly: name: Test - nightly toolchain @@ -40,27 +42,6 @@ jobs: - name: "Run tests" run: cargo rbmt test nightly --lock-file ${{ matrix.dep }} - MSRV: - name: Test - 1.63.0 toolchain - runs-on: ubuntu-26.04 - 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/prepare - with: - toolchain: "1.63.0" - - name: "Run tests" - run: cargo rbmt test msrv --lock-file ${{ matrix.dep }} - Lint: name: Lint - nightly toolchain runs-on: ubuntu-26.04 From 8ae19bdbbdbd298d118c86074cbc6e4db8dede7e Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Wed, 13 May 2026 11:38:15 +1000 Subject: [PATCH 4/5] CI: Combine jobs As done in `rust-bitcoin` combine the lint, docs, docsrs, and bench jobs into a single job. --- .github/workflows/rust.yml | 57 ++++++-------------------------------- 1 file changed, 9 insertions(+), 48 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index cb6c64661..2ffeb91a2 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -42,60 +42,21 @@ jobs: - name: "Run tests" run: cargo rbmt test nightly --lock-file ${{ matrix.dep }} - Lint: - name: Lint - nightly toolchain + Check: runs-on: ubuntu-26.04 + permissions: + contents: read strategy: fail-fast: false matrix: - dep: [recent] + task: [lint, docs, docsrs, bench] steps: - - uses: actions/checkout@v6 - - uses: ./.github/actions/prepare - with: - toolchain: nightly - components: clippy - - name: "Run lint" - run: cargo rbmt lint - - Docs: - name: Docs - stable toolchain - runs-on: ubuntu-26.04 - strategy: - fail-fast: false - steps: - - uses: actions/checkout@v6 - - uses: ./.github/actions/prepare - with: - toolchain: stable - - name: "Build docs" - run: cargo rbmt docs - - Docsrs: - name: Docs - nightly toolchain - runs-on: ubuntu-26.04 - strategy: - fail-fast: false - steps: - - uses: actions/checkout@v6 - - uses: ./.github/actions/prepare - with: - toolchain: nightly - - name: "Build docs.rs docs" - run: cargo rbmt docsrs - - Bench: - name: Bench - nightly toolchain - runs-on: ubuntu-26.04 - strategy: - fail-fast: false - steps: - - uses: actions/checkout@v6 - - uses: ./.github/actions/prepare + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: - toolchain: nightly - - name: "Run bench" - run: cargo rbmt bench + persist-credentials: false + - uses: ./.github/actions/setup-rbmt + - name: "Run ${{ matrix.task }}" + run: cargo rbmt ${{ matrix.task }} Format: name: Format - nightly toolchain From 04fb9a7b19b3bc4c6ee8d699c2e5b036c50c53ff Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Wed, 13 May 2026 11:42:44 +1000 Subject: [PATCH 5/5] CI: Delete the nightly job As discussed recently running the test with the nightly toolchain does not really give us any additional coverage. We already lint and build docs with the nightly toolchain. --- .github/workflows/rust.yml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 2ffeb91a2..994dae283 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -27,21 +27,6 @@ jobs: - name: "Run tests" run: cargo rbmt test --toolchain ${{ matrix.toolchain }} --lock-file ${{ matrix.dep }} - Nightly: - name: Test - nightly toolchain - runs-on: ubuntu-26.04 - strategy: - fail-fast: false - matrix: - dep: [minimal, recent] - steps: - - uses: actions/checkout@v6 - - uses: ./.github/actions/prepare - with: - toolchain: nightly - - name: "Run tests" - run: cargo rbmt test nightly --lock-file ${{ matrix.dep }} - Check: runs-on: ubuntu-26.04 permissions: