mirror of
https://github.com/1Password/arboard.git
synced 2025-08-05 03:18:19 +00:00
106 lines
3.4 KiB
YAML
106 lines
3.4 KiB
YAML
name: Test
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
rustfmt:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
components: rustfmt
|
|
- uses: actions/checkout@v4
|
|
- name: Check formatting
|
|
run: cargo fmt --all -- --check
|
|
|
|
clippy:
|
|
needs: rustfmt
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [macos-latest, windows-latest, ubuntu-latest]
|
|
# Latest stable and MSRV. We only run checks with all features enabled
|
|
# for the MSRV build to keep CI fast, since other configurations should also work.
|
|
rust_version: [stable, "1.71.0"]
|
|
steps:
|
|
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.rust_version }}
|
|
components: clippy
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Run `cargo clippy` with no features
|
|
if: ${{ matrix.rust_version == 'stable' }}
|
|
run: cargo clippy --verbose --no-default-features -- -D warnings -D clippy::dbg_macro
|
|
|
|
- name: Run `cargo clippy` with `image-data` feature
|
|
if: ${{ matrix.rust_version == 'stable' }}
|
|
run: cargo clippy --verbose --no-default-features --features image-data -- -D warnings -D clippy::dbg_macro
|
|
|
|
- name: Run `cargo clippy` with `wayland-data-control` feature
|
|
if: ${{ matrix.rust_version == 'stable' }}
|
|
run: cargo clippy --verbose --no-default-features --features wayland-data-control -- -D warnings -D clippy::dbg_macro
|
|
|
|
- name: Run `cargo clippy` with all features
|
|
run: cargo clippy --verbose --all-features -- -D warnings -D clippy::dbg_macro
|
|
|
|
- name: Run `cargo clippy` with dependency version checks
|
|
if: ${{ matrix.rust_version == 'stable' }}
|
|
run: |
|
|
cargo update -p windows-sys
|
|
cargo clippy --verbose --all-features -- -D warnings -D clippy::dbg_macro
|
|
|
|
test:
|
|
needs: clippy
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
# No Linux test for now as it just fails due to not having a desktop environment.
|
|
os: [macos-latest, windows-latest]
|
|
steps:
|
|
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Run tests with no features
|
|
run: cargo test --no-default-features
|
|
- name: Run tests with `image-data` feature
|
|
run: cargo test --no-default-features --features image-data
|
|
- name: Run tests with `wayland-data-control` feature
|
|
run: cargo test --no-default-features --features wayland-data-control
|
|
- name: Run tests with all features
|
|
run: cargo test --all-features
|
|
|
|
miri:
|
|
needs: clippy
|
|
env:
|
|
MIRIFLAGS: -Zmiri-symbolic-alignment-check
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
# Currently, only Windows has soundness tests.
|
|
os: [windows-latest]
|
|
steps:
|
|
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
with:
|
|
toolchain: nightly-2023-10-08
|
|
components: miri
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Check soundness
|
|
run: cargo miri test windows --features image-data
|
|
|
|
semver:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Check semver
|
|
uses: obi1kenobi/cargo-semver-checks-action@v2
|