Update UI to use profiles, compiler to use capabilities. #4427
Workflow file for this run
This file contains 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 Build and Test | |
on: | |
pull_request: | |
branches: [main] | |
merge_group: | |
workflow_dispatch: | |
# Cancel in-progress run when a pull request is updated | |
# Code taken from: | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using-a-fallback-value | |
concurrency: | |
group: ${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
NODE_VERSION: "18.17.1" | |
PYTHON_VERSION: "3.11" | |
RUST_TOOLCHAIN_VERSION: "1.73" | |
RUST_TOOLCHAIN_COMPONENTS: rustfmt clippy | |
jobs: | |
format: | |
name: Format | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: "true" | |
- name: Setup rust toolchain | |
uses: ./.github/actions/toolchains/rust | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
components: ${{ env.RUST_TOOLCHAIN_COMPONENTS }} | |
- name: Check Formatting | |
run: cargo fmt --all -- --check | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: "true" | |
- name: Setup rust toolchain | |
uses: ./.github/actions/toolchains/rust | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
components: ${{ env.RUST_TOOLCHAIN_COMPONENTS }} | |
- uses: Swatinem/rust-cache@v2 | |
- name: Clippy Lints | |
run: cargo clippy --all-targets --all-features -- -D warnings | |
benches: | |
name: Benches | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: "true" | |
- name: Setup rust toolchain | |
uses: ./.github/actions/toolchains/rust | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
components: ${{ env.RUST_TOOLCHAIN_COMPONENTS }} | |
- uses: Swatinem/rust-cache@v2 | |
- name: cargo bench | |
run: cargo bench --workspace | |
web-check: | |
name: Check web files | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: "true" | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: npm install | |
run: npm install | |
- name: npm check | |
run: npm run check | |
build: | |
name: Build and test | |
strategy: | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest] | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: "true" | |
- name: Setup rust toolchain | |
uses: ./.github/actions/toolchains/rust | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
components: ${{ env.RUST_TOOLCHAIN_COMPONENTS }} | |
- name: Add additional Rust targets | |
run: | | |
rustup target add aarch64-apple-darwin | |
if: matrix.os == 'macos-latest' | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- uses: Swatinem/rust-cache@v2 | |
- name: Prereqs | |
run: python ./prereqs.py --install | |
- name: Build and Test | |
run: python ./build.py --no-check | |
integration-tests: | |
name: Integration tests | |
if: ${{ ! github.event.pull_request }} | |
timeout-minutes: 15 | |
strategy: | |
matrix: | |
os: [windows-latest, ubuntu-latest, macos-latest] | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: "true" | |
- name: Setup rust toolchain | |
uses: ./.github/actions/toolchains/rust | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
components: ${{ env.RUST_TOOLCHAIN_COMPONENTS }} | |
- name: Add additional Rust targets | |
run: | | |
rustup target add aarch64-apple-darwin | |
if: matrix.os == 'macos-latest' | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- uses: Swatinem/rust-cache@v2 | |
- name: Prereqs | |
run: python ./prereqs.py --install | |
- name: Run integration tests | |
run: python ./build.py --no-check --no-test --wasm --npm --vscode --integration-tests |