binseq 0.11.0

A high efficiency binary format for sequencing data
Documentation
name: CI

on:
  push:
    branches: [main]
  pull_request:

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - name: Build
        run: cargo build --verbose
      - name: Run tests
        run: cargo test --verbose --all-features
      - name: Run tests (release)
        run: cargo test --verbose --release --all-features
      - name: Check feature matrix
        run: |
          cargo check --no-default-features
          cargo check --no-default-features --features paraseq
          cargo check --no-default-features --features anyhow

  fmt_lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - name: Formatting
        run: cargo fmt --check
      - name: Linting
        run: cargo clippy --all-features --all-targets -- -D warnings

  example_grep:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        ext: [bq, vbq, cbq]
    steps:
      - uses: actions/checkout@v7
      - name: run example ${{ matrix.ext }}
        run: cargo run --example grep -- ./data/subset.${{ matrix.ext }} "ACGTACGT"

  example_range:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        ext: [bq, vbq, cbq]
    steps:
      - uses: actions/checkout@v7
      - name: run example ${{ matrix.ext }}
        run: cargo run --example parallel_range -- ./data/subset.${{ matrix.ext }} -T 4 --start 30 --end 200

  example_write:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        ext: [bq, vbq, cbq]
    steps:
      - uses: actions/checkout@v7
      - name: run example (single) ${{ matrix.ext }}
        run: cargo run --example auto-write -F paraseq -- ./data/subset_R1.fastq.gz -o ./output.${{ matrix.ext }}
      - name: run example (paired) ${{ matrix.ext }}
        run: cargo run --example auto-write -F paraseq -- ./data/subset_R1.fastq.gz ./data/subset_R2.fastq.gz -o ./output.${{ matrix.ext }}

  example_read:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        ext: [bq, vbq, cbq]
    steps:
      - uses: actions/checkout@v7
      - name: run example ${{ matrix.ext }}
        run: cargo run --example read -- ./data/subset.${{ matrix.ext }}