Combined Dependabot Updates 10/2024 #201
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: Rust | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
CARGO_TERM_COLOR: always | |
RUSTFLAGS: '-D warnings' | |
jobs: | |
format: | |
name: Verify code Fromatting | |
runs-on: "ubuntu-latest" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Format | |
run: cargo fmt --all -- --check | |
lint: | |
name: Lint with clippy | |
needs: format | |
strategy: | |
fail-fast: true | |
runs-on: "ubuntu-latest" | |
env: | |
RUSTFLAGS: -Dwarnings | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: clippy, rustfmt | |
- name: Install clippy | |
run: rustup component add clippy --toolchain nightly | |
- name: Lint | |
run: cargo clippy --workspace --all-targets --verbose --all-features | |
# bench: | |
# name: Check that benchmarks compile | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: dtolnay/rust-toolchain@stable | |
# - name: Build u32 bench | |
# env: | |
# RUSTFLAGS: '--cfg curve25519_dalek_bits="32"' | |
# run: cargo build --benches | |
# - name: Build u64 bench | |
# env: | |
# RUSTFLAGS: '--cfg curve25519_dalek_bits="64"' | |
# run: cargo build --benches | |
# - name: Build default (host native) bench | |
# run: cargo build --benches | |
test-stable: | |
name: Test 32/64 bit stable | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
# 32-bit target | |
- target: i686-unknown-linux-gnu | |
deps: > | |
sudo dpkg --add-architecture i386; | |
sudo touch /etc/apt/sources.list.d/i386-cross-compile-sources.list; | |
echo "deb [arch=i386] http://ports.ubuntu.com/ focal universe\ndeb [arch=i386] http://ports.ubuntu.com/ focal-updates universe\n" | sudo tee -a /etc/apt/sources.list.d/i386-cross-compile-sources.list; | |
sudo apt update && sudo apt install gcc-multilib libsqlite3-dev:i386 | |
# 64-bit target | |
- target: x86_64-unknown-linux-gnu | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- run: rustup target add ${{ matrix.target }} | |
- run: ${{ matrix.deps }} | |
- run: cargo test --target ${{ matrix.target }} --workspace --all-targets --all-features | |
# - run: cargo test --target ${{ matrix.target }} --workspace --all-targets | |
# - run: cargo test --target ${{ matrix.target }} --workspace --all-targets --no-default-features | |
test-nightly: | |
name: Test Nightly | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@nightly | |
- run: cargo test --workspace --all-targets | |
msrv: | |
name: Check Crates against MSRV | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
# Re-resolve Cargo.lock with minimal versions | |
- uses: dtolnay/rust-toolchain@nightly | |
- run: cargo update -Z minimal-versions | |
# Now check that `cargo build` works with respect to the oldest possible | |
# deps and the stated MSRV. 1.70 should work for all | |
- uses: dtolnay/[email protected] | |
- run: cargo test --workspace --all-targets --all-features | |
# Also make sure the AVX2 build works | |
- run: cargo build --target x86_64-unknown-linux-gnu | |
# The PTRS crate has fewer dependencies and a lower msrv | |
- uses: dtolnay/[email protected] | |
- run: cargo test -p ptrs --all-targets --all-features | |
- run: cargo build -p ptrs --target x86_64-unknown-linux-gnu | |
build: | |
name: Build | |
needs: format | |
# needs: [format, lint] | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ "ubuntu-latest" ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@nightly | |
# Build ptrs library | |
- name: Build library and bins | |
run: cargo build | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Generate code coverage | |
run: cargo llvm-cov --all-features --workspace --codecov --output-path codecov.json | |
- name: Codecov | |
uses: codecov/[email protected] | |
with: | |
fail_ci_if_error: true | |
files: codecov.json | |
token: ${{ secrets.CODECOV_TOKEN }} # required | |
verbose: true | |
slug: jmwample/ptrs |