Skip to content

windows ci

windows ci #586

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: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
components: rustfmt
profile: minimal
- uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Test
if: ${{ matrix.os == 'ubuntu-latest'}}
run: bash ./scripts/test.sh
- name: Test
if: ${{ matrix.os == 'windows-latest'}}
run: .\scripts\test.ps1
shell: pwsh
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt
profile: minimal
- uses: arduino/setup-protoc@v1
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Lint
run: ./scripts/lint.sh
msrv:
strategy:
matrix:
rust: ["1.75.0"]
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up Rust ${{ matrix.rust }}
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
- uses: taiki-e/install-action@v2
with:
tool: cargo-msrv
- name: Patch dependencies versions
run: bash ./scripts/patch_dependencies.sh
- name: Check MSRV for all crates
run: bash ./scripts/msrv.sh ${{ 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@v1
with:
command: check advisories
docs:
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
components: rustfmt
override: true
- uses: arduino/setup-protoc@v1
- 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: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt,llvm-tools-preview
override: true
- uses: arduino/setup-protoc@v1
- 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: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- uses: taiki-e/install-action@v2
with:
tool: cargo-machete
- name: cargo machete
run: cargo machete