diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b1b89c384..aeccbf98a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,14 +22,6 @@ jobs: components: rustfmt - run: cargo fmt --all -- --check - runefmt: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - run: cargo run --bin rune -- fmt --verbose --check - - run: cargo run --bin rune -- fmt --verbose --check --recursive scripts - clippy: runs-on: ubuntu-latest steps: @@ -51,64 +43,35 @@ jobs: RUSTFLAGS: --cfg rune_docsrs RUSTDOCFLAGS: --cfg rune_docsrs - basics: - runs-on: ubuntu-latest - needs: - - rustfmt - - clippy - - docs - steps: - - run: exit 0 - msrv: runs-on: ubuntu-latest - needs: basics steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@1.81 - uses: Swatinem/rust-cache@v2 - - run: cargo build - - miri: - runs-on: ubuntu-latest - needs: basics - strategy: - fail-fast: false - matrix: - include: - - crate: rune - target: "runtime:: hir::arena:: --skip runtime::vm:: --skip runtime::vm_execution::" - - crate: rune-alloc - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly - with: - components: miri - - uses: Swatinem/rust-cache@v2 - - run: cargo miri test -p ${{matrix.crate}} --all-features -- ${{matrix.target}} + - run: cargo check nightly: runs-on: ubuntu-latest - needs: basics env: RUSTFLAGS: -D warnings --cfg rune_nightly steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@nightly - with: - components: miri - uses: Swatinem/rust-cache@v2 - run: cargo build --all-features - run: cargo build --tests --all-features - no_default_features: + basics: runs-on: ubuntu-latest - needs: basics + needs: + - rustfmt + - clippy + - docs + - msrv + - nightly steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - - run: cargo build -p rune --no-default-features --features alloc + - run: exit 0 build_feature: runs-on: ubuntu-latest @@ -116,15 +79,28 @@ jobs: strategy: fail-fast: false matrix: - feature: [cli, "cli,doc", "cli,fmt", doc, workspace, languageserver, byte-code, capture-io, emit] + feature: + - alloc + - cli + - cli,doc + - cli,fmt + - doc + - workspace + - languageserver + - byte-code + - capture-io + - emit env: RUSTFLAGS: -D warnings steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable + with: + components: clippy - uses: Swatinem/rust-cache@v2 - - run: cargo build -p rune --no-default-features --features ${{matrix.feature}} + - run: cargo check -p rune --no-default-features --features ${{matrix.feature}} - run: cargo check --release -p rune --no-default-features --features ${{matrix.feature}} + - run: cargo clippy --all-targets --no-default-features --features ${{matrix.feature}} wasm: runs-on: ubuntu-latest @@ -150,16 +126,53 @@ jobs: - uses: Swatinem/rust-cache@v2 - run: cargo run --manifest-path=no-std/Cargo.toml --example ${{matrix.example}} - test: + test_miri: + runs-on: ubuntu-latest + needs: basics + strategy: + fail-fast: false + matrix: + include: + - crate: rune + target: > + runtime:: hir::arena:: --skip runtime::vm:: --skip runtime::vm_execution:: + - crate: rune-alloc + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + with: + components: miri + - uses: Swatinem/rust-cache@v2 + - run: cargo miri test -p ${{matrix.crate}} --all-features -- ${{matrix.target}} + + test_lib: runs-on: ubuntu-latest needs: [no_default_features, build_feature, docs, msrv, miri, no_std, wasm] steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 - - run: cargo build -p rune --no-default-features --features alloc - - run: cargo test --all-targets - - run: cargo test --doc - - run: cargo run --bin rune -- check --recursive scripts - - run: cargo run --bin rune -- check --all-targets - - run: cargo run --bin rune -- test --all-targets -O test-std=true + - run: cargo test --all-targets --all-features + + test_doc: + runs-on: ubuntu-latest + needs: basics + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: cargo test --doc --all-features + + test_rune: + runs-on: ubuntu-latest + needs: basics + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + - run: cargo build --release --bin rune + - run: cargo run --release --bin rune -- fmt --verbose --check + - run: cargo run --release --bin rune -- fmt --verbose --check --recursive scripts + - run: cargo run --release --bin rune -- check --recursive scripts + - run: cargo run --release --bin rune -- check --all-targets + - run: cargo run --release --bin rune -- test --all-targets -O test-std=true