Skip to content

Commit

Permalink
ci: Update build to run more things in parallel
Browse files Browse the repository at this point in the history
  • Loading branch information
udoprog committed Oct 28, 2024
1 parent b9fca9a commit cdd8b4b
Showing 1 changed file with 69 additions and 56 deletions.
125 changes: 69 additions & 56 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -51,80 +43,64 @@ 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/[email protected]
- 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
needs: basics
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
Expand All @@ -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: basics
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo test --all-targets --all-features

test_doc:
runs-on: ubuntu-latest
needs: [no_default_features, build_feature, docs, msrv, miri, no_std, wasm]
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 -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 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

0 comments on commit cdd8b4b

Please sign in to comment.