Add Python interface ! #16
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 | |
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 run --bin anise-cli -- inspect data/gmat-hermite.bsp | |
cargo run --bin 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 |