Lyrebird #57
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@v3 | |
- 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@v3 | |
- 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@v3 | |
# - 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@v3 | |
- 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@v3 | |
- uses: dtolnay/rust-toolchain@nightly | |
- run: cargo test --workspace --all-targets | |
build: | |
name: Build | |
needs: format | |
# needs: [format, lint] | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ "ubuntu-latest" ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- 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/o7 |