allow non_snake_case in specialize #300
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 | |
on: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- '**.md' | |
pull_request: | |
branches: | |
- "**" | |
paths-ignore: | |
- '**.md' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: 1 | |
CARGO_INCREMENTAL: 0 | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
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 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install toolchains | |
run: | | |
rustup update | |
rustup toolchain install nightly | |
rustup component add miri --toolchain nightly | |
rustup toolchain install nightly-2023-05-27 | |
rustup component add rust-src rustc-dev llvm-tools-preview --toolchain nightly-2023-05-27 | |
- name: build | |
run: cargo build --workspace --features serde --all-targets -v | |
- name: test | |
run: cargo test --workspace --no-default-features --features serde --all-targets -v | |
- name: miri test | |
run: cargo +nightly miri test --no-default-features --features serde -v | |
- name: install wasm-pack | |
run: cargo install wasm-pack -vv | |
- name: wasm test | |
run: wasm-pack test --headless --firefox -- --no-default-features --features serde -vv | |
env: | |
RUSTFLAGS: --cfg run_in_browser | |
krnlc: | |
runs-on: ${{ matrix.os }} | |
env: | |
# 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" | |
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@v4 | |
- name: install toolchains | |
run: | | |
rustup update | |
rustup toolchain install nightly | |
rustup toolchain install nightly-2023-05-27 | |
rustup component add rust-src rustc-dev llvm-tools-preview --toolchain nightly-2023-05-27 | |
- 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@v4 | |
- name: check krnlc | |
run: cargo +nightly-2023-05-27 -Zunstable-options -C=krnlc check --locked --no-default-features --features use-installed-tools -vv | |
- name: install krnlc | |
run: cargo +nightly-2023-05-27 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 | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install toolchains | |
run: | | |
rustup update | |
rustup component add rustfmt clippy | |
rustup toolchain install nightly | |
rustup toolchain install nightly-2023-05-27 | |
rustup component add rustfmt clippy rust-src rustc-dev llvm-tools-preview --toolchain nightly-2023-05-27 | |
rustup toolchain install 1.70.0 | |
- name: fmt | |
run: cargo fmt --check | |
- name: krnlc fmt | |
run: cargo +nightly-2023-05-27 fmt --check --manifest-path krnlc/Cargo.toml | |
- name: install cargo-hack | |
run: cargo install cargo-hack | |
- name: clippy | |
env: | |
CARGO_ALIAS_CLIPPYALL: clippy --workspace | |
run: cargo hack --feature-powerset --skip default clippyall --all-targets -v -- -D warnings | |
- name: krnlc clippy | |
run: cargo +nightly-2023-05-27 clippy --manifest-path krnlc/Cargo.toml --no-default-features --features use-installed-tools -v -- -D warnings | |
- name: rustdoc | |
run: cargo rustdoc --all-features -- --D warnings | |
- name: msrv | |
run: | | |
cargo +nightly generate-lockfile -Zmsrv-policy | |
cat Cargo.lock | |
cargo +1.70.0 check --workspace --features serde --all-targets -v | |
cargo-deny: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: EmbarkStudios/cargo-deny-action@v1 | |
- uses: EmbarkStudios/cargo-deny-action@v1 | |
with: | |
manifest-path: "krnlc/Cargo.toml" |