ci: unify os workflows into one

This commit is contained in:
Christian Visintin
2026-06-08 09:50:18 +02:00
parent 82141e7f2b
commit 2a7d48a92b
6 changed files with 77 additions and 206 deletions

67
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,67 @@
name: CI
on:
pull_request:
paths-ignore:
- "*.md"
- "./site/**/*"
push:
branches: [ main ]
paths-ignore:
- "*.md"
- "./site/**/*"
env:
CARGO_TERM_COLOR: always
permissions:
contents: read
jobs:
build:
name: Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
persist-credentials: false
- name: Install Linux dependencies
if: runner.os == 'Linux'
run: sudo apt update && sudo apt install -y libdbus-1-dev libsmbclient-dev
- name: Install macOS dependencies
if: runner.os == 'macOS'
run: |
brew update
brew install \
pkg-config \
samba
brew link --force samba
- name: Install nightly toolchain
if: runner.os == 'Linux'
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: nightly
components: rustfmt
- name: Format
if: runner.os == 'Linux'
run: cargo +nightly fmt --all -- --check
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: stable
components: clippy
- name: Build
if: runner.os != 'Linux'
run: cargo build
- name: Run tests (Linux)
if: runner.os == 'Linux'
run: cargo test --no-default-features --features github-actions --no-fail-fast
- name: Run tests
if: runner.os != 'Linux'
run: cargo test --verbose --features github-actions
- name: Clippy
run: cargo clippy -- -Dwarnings

View File

@@ -1,43 +0,0 @@
name: Linux
on:
pull_request:
paths-ignore:
- "*.md"
- "./site/**/*"
push:
branches: [ main ]
paths-ignore:
- "*.md"
- "./site/**/*"
env:
CARGO_TERM_COLOR: always
permissions:
contents: read
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
persist-credentials: false
- name: Install dependencies
run: sudo apt update && sudo apt install -y libdbus-1-dev libsmbclient-dev
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: nightly
components: rustfmt, clippy
- name: Format
run: cargo +nightly fmt --all -- --check
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: stable
components: rustfmt, clippy
- name: Run tests
run: cargo test --no-default-features --features github-actions --no-fail-fast
- name: Clippy
run: cargo clippy -- -Dwarnings

View File

@@ -1,43 +0,0 @@
name: MacOS
on:
pull_request:
paths-ignore:
- "*.md"
- "./site/**/*"
push:
branches: [ main ]
paths-ignore:
- "*.md"
- "./site/**/*"
env:
CARGO_TERM_COLOR: always
permissions:
contents: read
jobs:
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: stable
components: rustfmt, clippy
- name: Install dependencies
run: |
brew update
brew install \
pkg-config \
samba
brew link --force samba
- name: Build
run: cargo build
- name: Run tests
run: cargo test --verbose --features github-actions
- name: Clippy
run: cargo clippy -- -Dwarnings

View File

@@ -1,37 +0,0 @@
name: Windows
on:
pull_request:
paths-ignore:
- "*.md"
- "./site/**/*"
push:
branches: [ main ]
paths-ignore:
- "*.md"
- "./site/**/*"
env:
CARGO_TERM_COLOR: always
permissions:
contents: read
jobs:
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
with:
toolchain: stable
components: rustfmt, clippy
- name: Build
run: cargo build
- name: Run tests
run: cargo test --verbose --features github-actions
- name: Clippy
run: cargo clippy -- -Dwarnings