Skip to content

chore: deprecate ZPages (#229) #16

chore: deprecate ZPages (#229)

chore: deprecate ZPages (#229) #16

Workflow file for this run

name: CI
env:
CI: true
on:
pull_request:
push:
branches:
- main
paths-ignore:
- '**.md'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
strategy:
matrix:
# test both stable and beta versions of Rust on ubuntu-latest
os: [ubuntu-latest]
rust: [stable, beta]
# test only stable version of Rust on Windows and MacOS
include:
- rust: stable
os: windows-latest
- rust: stable
os: macos-latest
- rust: stable
os: ubuntu-22.04-arm
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.rust == 'beta' }}
steps:
- name: Free disk space
if: ${{ matrix.os == 'ubuntu-latest'}}
run: |
df -h
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/share/dotnet
df -h
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
components: rustfmt
- name: "Set rustup profile"
run: rustup set profile minimal
- uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Test (Windows)
if: ${{ matrix.os == 'windows-latest'}}
run: ./scripts/test.ps1
shell: pwsh
- name: Test (Unix)
if: ${{ matrix.os != 'windows-latest'}}
run: bash ./scripts/test.sh
lint:
strategy:
matrix:
# clippy must be run in every OS to lint platform-specific code
os: [ubuntu-latest, windows-latest, macos-latest, ubuntu-22.04-arm]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: rustfmt,clippy
- uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Format
run: cargo fmt --all -- --check
- name: Lint (Windows)
if: ${{ matrix.os == 'windows-latest'}}
run: ./scripts/lint.ps1
shell: pwsh
- name: Lint (Unix)
if: ${{ matrix.os != 'windows-latest'}}
run: ./scripts/lint.sh
msrv:
strategy:
matrix:
rust: ["1.75.0"]
os: [
ubuntu-latest,
# windows-latest # Disabled due bug in `cargo-msrv` on Windows( https://github.com/foresterre/cargo-msrv/issues/1102 )
]
runs-on: ${{ matrix.os }}
continue-on-error: true
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up Rust ${{ matrix.rust }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- uses: taiki-e/install-action@v2
with:
tool: cargo-msrv
- name: Patch dependencies versions (Unix)
if: ${{ matrix.os != 'windows-latest'}}
run: bash ./scripts/patch_dependencies.sh
- name: Check MSRV for all crates (Unix)
if: ${{ matrix.os != 'windows-latest'}}
run: bash ./scripts/msrv.sh ${{ matrix.rust }}
- name: Check MSRV for all crates (Windows)
if: ${{ matrix.os == 'windows-latest'}}
run: ./scripts/msrv.ps1 ${{ matrix.rust }}
cargo-deny:
runs-on: ubuntu-latest
continue-on-error: true # Prevent sudden announcement of a new advisory from failing ci
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v2
with:
command: check advisories
docs:
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: doc
run: cargo doc --no-deps --all-features
env:
CARGO_INCREMENTAL: '0'
RUSTDOCFLAGS: -Dwarnings
coverage:
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: llvm-tools-preview
- uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: cargo install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: cargo generate-lockfile
if: hashFiles('Cargo.lock') == ''
run: cargo generate-lockfile
- name: cargo llvm-cov
run: cargo llvm-cov --locked --all-features --workspace --lcov --output-path lcov.info
- name: Upload to codecov.io
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
cargo-machete:
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- uses: taiki-e/install-action@v2
with:
tool: cargo-machete
- name: cargo machete
run: cargo machete
cargo-workspace-lints:
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
- uses: taiki-e/install-action@v2
with:
tool: cargo-workspace-lints
- name: cargo workspace-lints
run: cargo workspace-lints