Configure ruff
#411
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: umbral-pre | |
on: | |
pull_request: | |
paths: | |
- "umbral-pre/**" | |
- "umbral-pre-python/**" | |
- "umbral-pre-wasm/**" | |
- "Cargo.*" | |
push: | |
branches: | |
- master | |
tags: | |
- v* | |
defaults: | |
run: | |
working-directory: umbral-pre | |
env: | |
CARGO_INCREMENTAL: 0 | |
RUSTFLAGS: "-Dwarnings" | |
jobs: | |
build-wasm: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: | |
- 1.65.0 # MSRV | |
- stable | |
target: | |
- wasm32-unknown-unknown | |
steps: | |
- uses: actions/checkout@v1 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ matrix.rust }} | |
target: ${{ matrix.target }} | |
override: true | |
#- run: cp ../../Cargo.lock .. # Use same Cargo.lock resolution that's checked in | |
- run: cargo build --features bindings-wasm --release --target ${{ matrix.target }} | |
build-arm: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: | |
- 1.65.0 # MSRV | |
- stable | |
target: | |
- thumbv7em-none-eabi | |
steps: | |
- uses: actions/checkout@v1 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ matrix.rust }} | |
target: ${{ matrix.target }} | |
override: true | |
#- run: cp ../../Cargo.lock .. # Use same Cargo.lock resolution that's checked in | |
- run: cargo build --release --target ${{ matrix.target }} --no-default-features | |
build-benchmarks: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: | |
- 1.65.0 # MSRV | |
- stable | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ matrix.rust }} | |
- run: cargo build --all-features --benches | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- target: x86_64-unknown-linux-gnu | |
rust: 1.65.0 # MSRV | |
- target: x86_64-unknown-linux-gnu | |
rust: stable | |
steps: | |
- uses: actions/checkout@v1 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ matrix.rust }} | |
target: ${{ matrix.target }} | |
override: true | |
- run: ${{ matrix.deps }} | |
- run: cargo check --all-features | |
- run: cargo test --release --all-features | |
python-test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
rust: | |
- stable | |
python: | |
- "3.10" | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ matrix.rust }} | |
target: ${{ matrix.target }} | |
override: true | |
- name: Install umbral_pre package | |
run: pip install -e . | |
working-directory: umbral-pre-python | |
- name: Run Python example | |
run: python example/example.py | |
working-directory: umbral-pre-python | |
- name: Install pip dependencies | |
run: pip install mypy ruff | |
- name: Run mypy.stubtest | |
run: python -m mypy.stubtest umbral_pre --allowlist stubtest-allowlist.txt | |
working-directory: umbral-pre-python | |
- name: Run ruff | |
run: ruff check umbral_pre | |
working-directory: umbral-pre-python | |
trigger-wheels: | |
runs-on: ubuntu-latest | |
needs: test | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
- uses: benc-uk/workflow-dispatch@v1 | |
with: | |
workflow: Wheels | |
token: ${{ secrets.PERSONAL_TOKEN }} | |
codecov: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
target: x86_64-unknown-linux-gnu | |
override: true | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
# Only checking the coverage of the main library, | |
# bindings are covered by their language's tests. | |
# Also have to exclude `umbral-pre-python` explicitly, | |
# since it cannot be compiled for testing | |
# (https://github.com/PyO3/pyo3/issues/340) | |
- name: Generate code coverage | |
run: cargo llvm-cov --workspace --lcov --output-path lcov.info --exclude umbral-pre-wasm --exclude umbral-pre-python --all-features | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
files: lcov.info | |
fail_ci_if_error: true |