Merge pull request #741 from theseus-rs/impl-windows-process #2382
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |