bitnuc 0.4.1

A library for efficient nucleotide sequence manipulation using 2-bit and 4-bit encodings
Documentation
name: Rust

on: [push, pull_request]

env:
  CARGO_TERM_COLOR: always

jobs:
  ci:
    needs: [build, test-matrix, coverage]
    name: CI
    runs-on: "ubuntu-latest"
    steps:
      - name: Done
        run: exit 0

  build:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]

    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v3
      - name: Build
        run: cargo build --verbose

  test-matrix:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
        build: [debug, release]
        simd: [enabled, disabled]
        include:
          - simd: enabled
            simd_flag: ""
          - simd: disabled
            simd_flag: "-F nosimd"
          - build: debug
            build_flag: ""
          - build: release
            build_flag: "--release"

    name: Test ${{ matrix.os }} (${{ matrix.build }}, SIMD ${{ matrix.simd }})
    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v3
      - name: Run Tests
        run: cargo test --verbose ${{ matrix.build_flag }} ${{ matrix.simd_flag }}

  coverage:
    name: Coverage
    runs-on: "ubuntu-latest"
    steps:
      - uses: actions/checkout@v3
      - name: Install LLVM-Coverage
        uses: taiki-e/install-action@cargo-llvm-cov
      - name: Measure Coverage
        run: cargo llvm-cov --lcov --output-path coverage.lcov
      - name: Upload Coverage
        uses: codecov/codecov-action@v3
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          files: ./coverage.lcov