feat(schema): support generic bounds in structs & enums #1327
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: 🔁 Continuous Integration | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
merge_group: | |
jobs: | |
check_formatting: | |
runs-on: ubuntu-latest | |
name: 🗒 Check Rust formatting | |
steps: | |
- name: ⬇️ Checkout Source | |
uses: actions/checkout@v3 | |
- name: 🦀 Install Rustfmt | |
run: rustup component add rustfmt | |
- name: 🔧 Check | |
run: cargo fmt --all -- --check | |
clippy_correctness_checks: | |
runs-on: ubuntu-latest | |
name: 🔧 Clippy correctness checks | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { target: "x86_64-unknown-linux-gnu", target_dir: "target" } | |
- { target: "wasm32-unknown-unknown", target_dir: "web-target" } | |
steps: | |
- name: ⬇️ Checkout Source | |
uses: actions/checkout@v3 | |
- name: 🧰 Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y -q \ | |
libasound2-dev \ | |
libudev-dev | |
- name: 🧰 Install WASM Target | |
if: matrix.config.target == 'wasm32-unknown-unknown' | |
run: | | |
rustup target add ${{ matrix.config.target }} | |
rustup component add clippy | |
- name: 🧰 Install Clippy | |
if: matrix.config.target != 'wasm32-unknown-unknown' | |
run: rustup component add clippy | |
- name: ♻️ Cache Cargo | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
web-target/ | |
key: ci-${{ matrix.config.target }}-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
ci-${{ matrix.config.target }}- | |
- name: 🔧 Check | |
env: | |
CARGO_TARGET_DIR: ${{ matrix.config.target_dir }} | |
run: cargo clippy --target ${{ matrix.config.target }} -- -W clippy::correctness -D warnings | |
- name: ⚙️ Test | |
if: matrix.config.target != 'wasm32-unknown-unknown' | |
env: | |
CARGO_TARGET_DIR: ${{ matrix.config.target_dir }} | |
run: cargo test --workspace | |
minimal_deps_check: | |
runs-on: ubuntu-latest | |
name: 🔧 Check Minimal Dependency Versions | |
steps: | |
- name: ⬇️ Checkout Source | |
uses: actions/checkout@v3 | |
- name: 🧰 Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y -q \ | |
libasound2-dev \ | |
libudev-dev | |
- name: 🧰 Install Rust Nightly | |
run: rustup toolchain install nightly | |
- name: ♻️ Cache Cargo | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: check-minimal-deps-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
check-minimal-deps- | |
- name: 🔧 Check | |
run: cargo +nightly check -Z direct-minimal-versions --workspace | |
cargo-deny: | |
name: ©️ License and advisories check | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
checks: | |
- advisories | |
- bans licenses sources | |
# Prevent sudden announcement of a new advisory from failing ci: | |
continue-on-error: ${{ matrix.checks == 'advisories' }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: EmbarkStudios/cargo-deny-action@v1 | |
with: | |
command: check ${{ matrix.checks }} |