Skip to content

Add rotations using Euler parameters and MRPs #164

Add rotations using Euler parameters and MRPs

Add rotations using Euler parameters and MRPs #164

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
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