What changed, and why it matters
This change simply moves an existing automated test (Miri, a Rust memory-safety checker) from running on every pull request to running once per day, like other long-running tests. It does not change any code that users run, and it does not fix or introduce a security bug.
No security action needed. Review as a normal infrastructure/CI change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit removes .github/workflows/miri.yml (triggered on push/PR) and adds .github/workflows/cron-daily-miri.yml (triggered on a cron schedule). It also updates the CI failure issue generator to include the renamed Miri workflow. The actual Miri test script, toolchain, and permissions remain unchanged. This is a CI scheduling/operational change only.
Changed components
GitHub Actions CI configurationInspect captured patch +40 / −39
diff --git a/.github/workflows/ci-failure-issues.yml b/.github/workflows/ci-failure-issues.yml
index 0b8fd72b..21b169e2 100644
--- a/.github/workflows/ci-failure-issues.yml
+++ b/.github/workflows/ci-failure-issues.yml
@@ -5,6 +5,7 @@ on:
workflows:
- Fuzz
- Kani CI
+ - Miri
types:
- completed
branches:
@@ -32,6 +33,7 @@ jobs:
const workflowFiles = {
"Fuzz": "cron-daily-fuzz.yml",
"Kani CI": "cron-daily-kani.yml",
+ "Miri": "cron-daily-miri.yml",
};
const formatTs = iso => {
diff --git a/.github/workflows/cron-daily-miri.yml b/.github/workflows/cron-daily-miri.yml
new file mode 100644
index 00000000..38d891f7
--- /dev/null
+++ b/.github/workflows/cron-daily-miri.yml
@@ -0,0 +1,38 @@
+name: Miri
+on: # yamllint disable-line rule:truthy
+ schedule:
+ # 10am every day UTC, this correlates to:
+ # - 3am PDT
+ # - 11am CET
+ # - 9pm AEDT
+ - cron: '00 10 * * *'
+
+permissions: {}
+
+jobs:
+ Miri:
+ name: Miri
+ runs-on: ubuntu-24.04
+ permissions:
+ contents: read
+ strategy:
+ fail-fast: false
+ steps:
+ - name: "Checkout repo"
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+ with:
+ persist-credentials: false
+ - name: "Read nightly version"
+ id: read_toolchain
+ run: echo "nightly_version=$(cargo metadata --format-version 1 | jq -r '.metadata.rbmt.toolchains.nightly')" >> $GITHUB_OUTPUT
+ - name: "Select toolchain"
+ uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
+ with:
+ toolchain: ${{ steps.read_toolchain.outputs.nightly_version }}
+ components: miri
+ - name: "Setup miri"
+ run: cargo miri setup
+ - name: "Set dependencies"
+ run: cp Cargo-recent.lock Cargo.lock
+ - name: "Run test script"
+ run: ./contrib/test-miri.sh
diff --git a/.github/workflows/miri.yml b/.github/workflows/miri.yml
deleted file mode 100644
index b22b0c65..00000000
--- a/.github/workflows/miri.yml
+++ /dev/null
@@ -1,39 +0,0 @@
---- # rust-bitcoin CI: If you edit this file please update README.md
-on: # yamllint disable-line rule:truthy
- push:
- branches:
- - master
- - 'test-ci/**'
- pull_request:
-
-name: Miri
-
-permissions: {}
-
-jobs:
- Miri:
- name: Miri
- runs-on: ubuntu-24.04
- permissions:
- contents: read
- strategy:
- fail-fast: false
- steps:
- - name: "Checkout repo"
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- with:
- persist-credentials: false
- - name: "Read nightly version"
- id: read_toolchain
- run: echo "nightly_version=$(cargo metadata --format-version 1 | jq -r '.metadata.rbmt.toolchains.nightly')" >> $GITHUB_OUTPUT
- - name: "Select toolchain"
- uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
- with:
- toolchain: ${{ steps.read_toolchain.outputs.nightly_version }}
- components: miri
- - name: "Setup miri"
- run: cargo miri setup
- - name: "Set dependencies"
- run: cp Cargo-recent.lock Cargo.lock
- - name: "Run test script"
- run: ./contrib/test-miri.sh
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.