code sharing between modules #124
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: Continuous Integration | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
env: | |
RUST_BACKTRACE: 1 | |
CARGO_INCREMENTAL: 0 | |
# spirv tools install copied from https://github.com/EmbarkStudios/rust-gpu/blob/main/.github/workflows/ci.yaml | |
spirv_tools_version: "20221024" | |
# NOTE(eddyb) do not forget to update both the above date and below links! | |
# FIXME(eddyb) automate this somewhat by taking advantage of the bucket APIs, | |
# and look for the first build with the date in `spirv_tools_version`. | |
spirv_tools_linux_url: "https://storage.googleapis.com/spirv-tools/artifacts/prod/graphics_shader_compiler/spirv-tools/linux-clang-release/continuous/1863/20221024-094528/install.tgz" | |
spirv_tools_macos_url: "https://storage.googleapis.com/spirv-tools/artifacts/prod/graphics_shader_compiler/spirv-tools/macos-clang-release/continuous/1875/20221024-094531/install.tgz" | |
spirv_tools_windows_url: "https://storage.googleapis.com/spirv-tools/artifacts/prod/graphics_shader_compiler/spirv-tools/windows-msvc-2017-release/continuous/1851/20221024-094908/install.zip" | |
RUSTUP_UNPACK_RAM: "26214400" | |
RUSTUP_IO_THREADS: "1" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
- os: windows-latest | |
target: x86_64-pc-windows-msvc | |
- os: macos-latest | |
target: x86_64-apple-darwin | |
# spirv tools install copied from https://github.com/EmbarkStudios/rust-gpu/blob/main/.github/workflows/ci.yaml | |
steps: | |
- uses: actions/checkout@v2 | |
- if: ${{ runner.os == 'Linux' }} | |
name: Linux - Install native dependencies and spirv-tools | |
run: | | |
sudo apt install libwayland-cursor0 libxkbcommon-dev libwayland-dev | |
mkdir "${HOME}/spirv-tools" | |
curl -fL "$spirv_tools_linux_url" | tar -xz -C "${HOME}/spirv-tools" | |
echo "${HOME}/spirv-tools/install/bin" >> $GITHUB_PATH | |
- if: ${{ runner.os == 'macOS' }} | |
name: Mac - Install spirv-tools | |
# FIXME(eddyb) deduplicate with Linux (and maybe even Windows?). | |
run: | | |
mkdir "${HOME}/spirv-tools" | |
curl -fL "$spirv_tools_macos_url" | tar -xz -C "${HOME}/spirv-tools" | |
echo "${HOME}/spirv-tools/install/bin" >> $GITHUB_PATH | |
- if: ${{ runner.os == 'Windows' }} | |
name: Windows - Install spirv-tools | |
shell: bash | |
run: | | |
tmparch=$(mktemp) | |
mkdir "${HOME}/spirv-tools" | |
curl -fL -o "$tmparch" "$spirv_tools_windows_url" | |
unzip "$tmparch" -d "${HOME}/spirv-tools" | |
- if: ${{ runner.os == 'Windows' }} | |
# Runs separately to add spir-v tools to Powershell's Path. | |
run: echo "$HOME/spirv-tools/install/bin" >> $env:GITHUB_PATH | |
# end install spirv-tools | |
- uses: actions/checkout@v2 | |
- name: build | |
run: cargo build -v | |
continue-on-error: true | |
- name: test | |
run: cargo test --no-default-features -p krnl -p krnlc-tests -v -- --format=terse | |
continue-on-error: true | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly-2023-04-15 | |
components: rust-src, rustc-dev, llvm-tools-preview | |
- name: install krnlc | |
run: cargo +nightly-2023-04-15 install --path krnlc --root . --locked --no-default-features --features use-installed-tools -vv --debug | |
- name: krnlc check | |
run: ./bin/krnlc --check -p krnl -p krnlc-tests -p compute-benchmarks -v | |
miri: | |
runs-on: ubuntu-latest | |
env: | |
RUST_BACKTRACE: 1 | |
CARGO_INCREMENTAL: 0 | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
components: miri | |
- name: miri test | |
run: cargo +nightly miri test --no-default-features -v -- --format=terse | |
wasm: | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: --cfg run_in_browser | |
steps: | |
- uses: actions/checkout@v2 | |
- name: install wasm-pack | |
run: cargo install wasm-pack -vv | |
- name: wasm test | |
run: wasm-pack test --headless --firefox -- --no-default-features -vv | |
lint: | |
runs-on: ubuntu-latest | |
env: | |
RUST_BACKTRACE: 1 | |
CARGO_INCREMENTAL: 0 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
components: rustfmt, clippy | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly-2023-04-15 | |
components: rustfmt, clippy, rust-src, rustc-dev, llvm-tools-preview | |
- name: fmt | |
run: cargo fmt --check | |
continue-on-error: true | |
- name: clippy | |
run: cargo clippy -- -D warnings | |
continue-on-error: true | |
- name: krnlc fmt | |
run: cargo +nightly-2023-04-15 fmt --check --manifest-path krnlc/Cargo.toml | |
continue-on-error: true | |
- name: krnlc clippy | |
run: cargo +nightly-2023-04-15 clippy --manifest-path krnlc/Cargo.toml --no-default-features --features use-installed-tools -v -- -D warnings | |
continue-on-error: true | |
cargo-deny: | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: EmbarkStudios/cargo-deny-action@v1 | |
- uses: EmbarkStudios/cargo-deny-action@v1 | |
with: | |
arguments: "--manifest-path krnlc/Cargo.toml" |