Skip to content

Merge pull request #741 from theseus-rs/impl-windows-process #2382

Merge pull request #741 from theseus-rs/impl-windows-process

Merge pull request #741 from theseus-rs/impl-windows-process #2382

Workflow file for this run

name: ci
on:
push:
branches:
- main
pull_request:
branches:
- main
permissions:
contents: read
jobs:
checks:
name: Checks
uses: ./.github/workflows/checks.yml
build:
name: ${{ matrix.platform }}
needs: [ checks ]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
platform:
- linux-arm
- linux-riscv64
- linux-s390x
- linux-x64
- macos-arm
- macos-x64
- windows-arm
- windows-x64
- wasm32-unknown
- wasm32-wasi
include:
- platform: linux-arm
os: ubuntu-24.04-arm
target: aarch64-unknown-linux-gnu
- platform: linux-riscv64
os: ubuntu-latest
target: riscv64gc-unknown-linux-gnu
- platform: linux-s390x
os: ubuntu-latest
target: s390x-unknown-linux-gnu
- platform: linux-x64
os: ubuntu-latest
target: x86_64-unknown-linux-gnu
- platform: macos-arm
os: macos-26
target: aarch64-apple-darwin
- platform: macos-x64
os: macos-26-intel
target: x86_64-apple-darwin
- platform: windows-arm
os: windows-11-arm
target: aarch64-pc-windows-msvc
- platform: windows-x64
os: windows-latest
target: x86_64-pc-windows-msvc
- platform: wasm32-unknown
os: ubuntu-latest
target: wasm32-unknown-unknown
- platform: wasm32-wasi
os: ubuntu-latest
target: wasm32-wasip2
steps:
- name: Checkout source code
uses: actions/checkout@v6
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
targets: ${{ matrix.target }}
toolchain: stable
- name: Install cross
if: ${{ matrix.platform == 'linux-riscv64' || matrix.platform == 'linux-s390x' }}
uses: taiki-e/install-action@main
with:
tool: cross
- name: Run clippy
if: ${{ matrix.platform == 'wasm32-unknown' }}
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: --cfg getrandom_backend="wasm_js"
run: |
rustup target install ${{ matrix.target }}
cargo clippy --workspace --target ${{ matrix.target }} -- -D warnings
- name: Run clippy
if: ${{ matrix.platform == 'linux-riscv64' || matrix.platform == 'linux-s390x' }}
env:
CARGO_TERM_COLOR: always
run: |
cross clippy --workspace --target ${{ matrix.target }} -- -D warnings
- name: Run clippy
if: ${{ matrix.platform == 'wasm32-wasi' }}
env:
CARGO_TERM_COLOR: always
RUSTC_BOOTSTRAP: 1
run: |
rustup target install ${{ matrix.target }}
cargo clippy --workspace --target ${{ matrix.target }} -- -D warnings
- name: Run clippy
if: ${{ matrix.platform != 'wasm32-unknown' && matrix.platform != 'linux-riscv64' && matrix.platform != 'linux-s390x' && matrix.platform != 'wasm32-wasi' }}
env:
CARGO_TERM_COLOR: always
run: |
rustup target install ${{ matrix.target }}
cargo clippy --workspace --target ${{ matrix.target }} -- -D warnings
- name: Build
if: ${{ matrix.platform == 'wasm32-unknown' }}
env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
RUST_BACKTRACE: 1
RUSTFLAGS: --cfg getrandom_backend="wasm_js"
RUST_LOG: info
run: |
rustup target install ${{ matrix.target }}
cargo build --workspace --target ${{ matrix.target }}
- name: Build
if: ${{ matrix.platform == 'wasm32-wasi' }}
env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
RUST_BACKTRACE: 1
RUSTC_BOOTSTRAP: 1
RUST_LOG: info
run: |
rustup target install ${{ matrix.target }}
cargo build --workspace --target ${{ matrix.target }}
- name: Build
if: ${{ matrix.platform == 'linux-riscv64' || matrix.platform == 'linux-s390x' }}
env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
RUST_BACKTRACE: 1
RUST_LOG: info
run: |
cross build --workspace --target ${{ matrix.target }}
- name: Build
if: ${{ matrix.platform != 'wasm32-unknown' && matrix.platform != 'wasm32-wasi' && matrix.platform != 'linux-riscv64' && matrix.platform != 'linux-s390x' }}
env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
RUST_BACKTRACE: 1
RUST_LOG: info
run: |
rustup target install ${{ matrix.target }}
cargo build --workspace --target ${{ matrix.target }}
- name: Install wasmtime
if: ${{ matrix.platform == 'wasm32-wasi' }}
uses: taiki-e/install-action@v2
with:
tool: wasmtime
- name: Tests
if: ${{ matrix.platform == 'wasm32-wasi' }}
env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
RUST_BACKTRACE: 1
RUST_LOG: info
RUSTC_BOOTSTRAP: 1
CARGO_TARGET_WASM32_WASIP2_RUNNER: "wasmtime -W max-wasm-stack=8388608 -S http -S inherit-network -S allow-ip-name-lookup --dir=. --dir=${{ github.workspace }}::${{ github.workspace }} --env=HOME=/home --dir=${{ runner.temp }}::/home --env=TMPDIR=/tmp --dir=/tmp::/tmp"
run: |
cargo test --workspace --tests --exclude ristretto_classfile --target ${{ matrix.target }} -- --test-threads=1
- name: Tests
if: ${{ !startsWith(matrix.platform, 'wasm32') && matrix.platform != 'linux-riscv64' && matrix.platform != 'linux-s390x' && matrix.platform != 'macos-arm' }}
env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
RUST_BACKTRACE: 1
RUST_LOG: info
run: |
cargo test --profile release-tests --workspace --all-features
- name: Tests
if: ${{ matrix.platform == 'linux-riscv64' }}
env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
RUST_BACKTRACE: 1
RUST_LOG: info
run: |
cross test --profile release-tests --workspace --all-features --target ${{ matrix.target }} \
--exclude embedded_jvm \
--exclude ristretto_cli \
--exclude ristretto_intrinsics \
--exclude ristretto_vm
- name: Tests
if: ${{ matrix.platform == 'linux-s390x' }}
env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
RUST_BACKTRACE: 1
RUST_LOG: info
run: |
cross test --profile release-tests --workspace --all-features --target ${{ matrix.target }} \
--exclude embedded_jvm \
--exclude ristretto_cli \
--exclude ristretto_intrinsics \
--exclude ristretto_jit \
--exclude ristretto_vm
- name: Install cargo-llvm-cov
if: ${{ matrix.platform == 'macos-arm' }}
uses: taiki-e/install-action@main
with:
tool: cargo-llvm-cov
- name: Tests
if: ${{ matrix.platform == 'macos-arm' }}
env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
RUST_BACKTRACE: 1
RUST_LOG: info
RUST_LOG_SPAN_EVENTS: full
run: |
cargo llvm-cov --profile release-tests --workspace --lcov --output-path lcov.info
- name: Upload to codecov.io
if: ${{ matrix.platform == 'macos-arm' }}
uses: codecov/codecov-action@v5
with:
files: lcov.info
fail_ci_if_error: true
verbose: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}