Updated CI workflow cache keys with a `v2` salt and `Cargo.lock` hash to prevent stale incremental compilation caches and deadlocks, while updating restore keys and documenting interrupted job state. Introduced a 3-way ordinal distance metric framework that replaces ambiguous IUPAC encoding with explicit k-mer scoring, bridging pairwise methods to character-based phylogenetics via Sankoff parsimony. Bumped the `obikmer` crate version to 1.1.42.
42 lines
1.2 KiB
YAML
42 lines
1.2 KiB
YAML
pname: CI
|
|
|
|
on:
|
|
pull_request:
|
|
branches: ['main']
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
working-directory: src
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install Rust
|
|
run: |
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable
|
|
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
|
|
|
- name: Cache cargo registry
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
src/target
|
|
# v2: bump this salt to force a clean cache when a stuck/killed job
|
|
# may have saved a corrupted incremental-compilation `src/target`
|
|
# (observed 2026-08-11: a stale test binary deadlocked in NUMA
|
|
# worker startup; a from-scratch rebuild of the same source fixed
|
|
# it instantly, pointing at cache corruption rather than a source
|
|
# bug).
|
|
key: ${{ runner.os }}-cargo-v2-${{ hashFiles('src/Cargo.lock') }}
|
|
restore-keys: ${{ runner.os }}-cargo-v2-
|
|
|
|
- name: Build
|
|
run: cargo build --release
|
|
|
|
- name: Test
|
|
run: cargo test --release
|