Skip to content

Merge pull request #155 from nyx-space/dependabot/cargo/polars-0.36.2 #39

Merge pull request #155 from nyx-space/dependabot/cargo/polars-0.36.2

Merge pull request #155 from nyx-space/dependabot/cargo/polars-0.36.2 #39

Workflow file for this run

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
args: --workspace --exclude anise-gui --exclude anise-py
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
run: cargo test --workspace --exclude anise-gui --exclude anise-py
- name: Test release
run: cargo test --release --workspace --exclude anise-gui --exclude anise-py
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: -p anise -- -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 build --bin anise-cli --workspace --exclude anise-py
./target/debug/anise-cli inspect data/gmat-hermite.bsp
./target/debug/anise-cli inspect data/de440.bsp
- name: Rust-SPICE JPL DE validation
run: RUST_BACKTRACE=1 cargo test validate_jplde --features spkezr_validation --release --workspace --exclude anise-gui --exclude anise-py -- --nocapture --include-ignored --test-threads 1
- name: Rust-SPICE hermite validation
run: RUST_BACKTRACE=1 cargo test validate_hermite_type13_ --features spkezr_validation --release --workspace --exclude anise-gui --exclude anise-py -- --nocapture --include-ignored --test-threads 1
- name: Rust-SPICE PCK validation
run: RUST_BACKTRACE=1 cargo test validate_iau_rotation_to_parent --release --workspace --exclude anise-gui --exclude anise-py -- --nocapture --ignored
- name: Rust-SPICE BPC validation
run: |
RUST_BACKTRACE=1 cargo test validate_bpc_ --release --workspace --exclude anise-gui --exclude anise-py -- --nocapture --include-ignored --test-threads 1
RUST_BACKTRACE=1 cargo test de440s_translation_verif_venus2emb --release --workspace --exclude anise-gui --exclude anise-py -- --nocapture --include-ignored --test-threads 1
# Now analyze the results and create pretty plots
- uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Validation analysis
run: |
cd anise/tests/test_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 --workspace --exclude anise-gui --exclude anise-py --no-report -- --test-threads=1
cargo llvm-cov test --workspace --exclude anise-gui --exclude anise-py --no-report --tests -- compile_fail
cargo llvm-cov test --workspace --exclude anise-gui --exclude anise-py --no-report validate_iau_rotation_to_parent -- --nocapture --ignored
cargo llvm-cov test --workspace --exclude anise-gui --exclude anise-py --no-report validate_bpc_to_iau_rotations -- --nocapture --ignored
cargo llvm-cov test --workspace --exclude anise-gui --exclude anise-py --no-report validate_jplde_de440s --features spkezr_validation -- --nocapture --ignored
cargo llvm-cov test --workspace --exclude anise-gui --exclude anise-py --no-report validate_hermite_type13_from_gmat --features spkezr_validation -- --nocapture --ignored
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