name: Rust CI
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
permissions:
contents: read
pull-requests: write
pages: write
id-token: write
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
rust-ci:
permissions:
contents: read
pull-requests: write
pages: write
id-token: write
uses: qubit-ltd/rs-infra-ci/.github/workflows/github-ci.yml@main
miri-preserve-order:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Prepare local path dependencies
run: ./.infra/bin/prepare-local-path-dependencies.sh
- name: Install Miri toolchain
run: rustup toolchain install nightly-2026-06-05 --profile minimal --component miri
- name: Prepare Miri
run: cargo +nightly-2026-06-05 miri setup
- name: Test mutable traversal with preserve_order
run: cargo +nightly-2026-06-05 miri test --locked --test tests --features serde_json/preserve_order value::traverse::json_tree_mutator_tests
- name: Test protected-value drop fallback
run: cargo +nightly-2026-06-05 miri test --locked --lib test_owner_drop_fallback_
- name: Test protected-value drop fallback with preserve_order
run: cargo +nightly-2026-06-05 miri test --locked --lib --features serde_json/preserve_order test_owner_drop_fallback_