Better error logging with snafu #191
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
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
name: ANISE Rust Workflow | |
env: | |
RUST_BACKTRACE: 1 | |
RUST_LOG: info | |
jobs: | |
check: | |
name: Check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Install CSPICE | |
run: sh dev-env-setup.sh | |
- name: Run cargo check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
test: | |
name: Run tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
with: | |
lfs: true | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Install CSPICE | |
run: sh dev-env-setup.sh && cd .. # Return to root | |
- name: Test debug (default features) # This has overflow checks etc. | |
run: cargo test | |
- name: Test debug (no default features) | |
run: cargo test --no-default-features | |
- name: Test release (default features and release) | |
run: cargo test --release | |
- name: Test (no default features and release) | |
run: cargo test --no-default-features --release | |
lints: | |
name: Lints | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: rustfmt, clippy | |
- name: Run cargo fmt | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check | |
- name: Run cargo clippy | |
uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: -- -D warnings | |
validation: | |
name: Validation | |
runs-on: ubuntu-latest | |
needs: [check, test, lints] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
with: | |
lfs: true | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Install CSPICE | |
run: sh dev-env-setup.sh && cd .. # Return to root | |
- name: CLI SPK | |
run: | | |
cargo run -- inspect data/gmat-hermite.bsp | |
cargo run -- inspect data/de440.bsp | |
- name: Rust-SPICE JPL DE validation | |
run: | | |
RUST_BACKTRACE=1 RUST_LOG=debug cargo test validate_jplde_de440s --features validation --release -- --nocapture --ignored | |
RUST_BACKTRACE=1 RUST_LOG=debug cargo test validate_jplde_de440_full --features validation --release -- --nocapture --ignored | |
- name: Rust-SPICE hermite validation | |
run: | | |
RUST_BACKTRACE=1 RUST_LOG=debug cargo test validate_hermite_type13_from_gmat --features validation --release -- --nocapture --ignored | |
RUST_BACKTRACE=1 RUST_LOG=debug cargo test validate_hermite_type13_with_varying_segment_sizes --features validation --release -- --nocapture --ignored | |
# Now analyze the results and create pretty plots | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- name: Validation analysis | |
run: | | |
cd analysis | |
pip install -r requirements.txt | |
python spk_validation_plots.py | |
- name: Save validation artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: validation-artifacts | |
path: target/*.html | |
coverage: | |
name: Coverage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
lfs: true | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: rustfmt, clippy | |
- name: Install CSPICE | |
run: sh dev-env-setup.sh && cd .. # Return to root | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Generate coverage report | |
run: | | |
cargo llvm-cov clean --workspace | |
cargo llvm-cov test --no-report -- --test-threads=1 | |
cargo llvm-cov test --no-report --tests -- compile_fail | |
cargo llvm-cov report --lcov > lcov.txt | |
env: | |
RUSTFLAGS: --cfg __ui_tests | |
- name: Upload coverage report | |
uses: codecov/codecov-action@v3 | |
env: | |
TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
with: | |
files: ./lcov.txt |