hts-sys 2.2.0

This library provides HTSlib bindings.
Documentation
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  Formatting:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1.0.6
        with:
          toolchain: stable
          override: true
          components: rustfmt

      - name: Check format
        run: cargo fmt -- --check

  Linting:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          submodules: recursive

      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1.0.6
        with:
          toolchain: stable
          override: true
          components: clippy

      - name: Lint with clippy
        uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}

  Testing:
    needs: Formatting
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          submodules: recursive

      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1.0.6
        with:
          toolchain: stable
          override: true

      - name: Install system dependencies
        run: |
          sudo apt-get install --yes zlib1g-dev libbz2-dev musl musl-dev musl-tools clang libc6-dev

      - uses: Swatinem/rust-cache@v1.3.0

      - name: Test
        uses: actions-rs/cargo@v1
        with:
          command: test

  Testing-Features:
    needs: Formatting
    runs-on: ubuntu-latest
    strategy:
      matrix:
        target:
          - no-default-features
          - all-features
        include:
          - target: no-default-features
            args: --no-default-features
            use_cross: false
          - target: all-features
            args: --all-features
            toolchain_target: x86_64-unknown-linux-musl
            use_cross: false

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          submodules: recursive

      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1.0.6
        with:
          toolchain: stable
          override: true

      - name: Install system dependencies
        run: |
          sudo apt-get install --yes zlib1g-dev libbz2-dev musl musl-dev musl-tools clang libc6-dev lldb lld

      - uses: Swatinem/rust-cache@v1.3.0

      - name: Test
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: ${{ matrix.args }}
          use-cross: ${{ matrix.use_cross }}

  Testing-MacOS:
    needs: Formatting
    runs-on: macos-latest
    strategy:
      matrix:
        target:
          - intel-monterey
          - intel-ventura
          - silicon-sonoma
        include:
          - target: intel-monterey
            os: macOS-12.0
            toolchain_target: x86_64-apple-darwin
            toolchain: stable
            aux_args: --target x86_64-apple-darwin
            default: true
          - target: intel-ventura
            os: macOS-13.0
            toolchain_target: x86_64-apple-darwin
            toolchain: stable
            aux_args: --target x86_64-apple-darwin
            default: true
          - target: silicon-sonoma
            os: macOS-14.0
            toolchain_target: aarch64-apple-darwin
            toolchain: stable
            aux_args: ""
            default: false

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          submodules: recursive

      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1.0.6
        with:
          toolchain: ${{ matrix.toolchain }}
          target: ${{ matrix.toolchain_target }}
          override: true
          default: ${{ matrix.default }}

      - name: Install htslib dependencies
        run: brew install bzip2 zlib xz curl-openssl

      - name: Test
        uses: actions-rs/cargo@v1.0.1
        with:
          use-cross: false # cross is not supported on GHA OSX runner, see: https://github.community/t/why-is-docker-not-installed-on-macos/17017
          command: test
          args: --release --all-features --verbose ${{ matrix.aux_args }}
#  Testing-OSX-MUSL-BigSur:
#   needs: Formatting
#   runs-on: macOS-11.0
#   steps:
# Test MUSL builds on OSX
#
# - uses: actions-rs/toolchain@v1.0.6
#   with:
#     toolchain: stable
#     target: x86_64-unknown-linux-musl
#     override: true

# - name: Install OSX musl-cross
#   run: brew install FiloSottile/musl-cross/musl-cross

# # https://github.com/FiloSottile/homebrew-musl-cross/issues/16
# - name: Provide musl-gcc symlink for the right musl arch
#   run: ln -sf /usr/local/opt/musl-cross/libexec/bin/x86_64-linux-musl-gcc /usr/local/bin/musl-gcc

# - name: Test musl build without default features
#   uses: actions-rs/cargo@v1
#   with:
#     use-cross: false  # cross is not supported on GHA OSX runner, see: https://github.community/t/why-is-docker-not-installed-on-macos/17017
#     command: test
#     args: --release --target x86_64-unknown-linux-musl --no-default-features

# - name: Test musl build with all features and debug symbols (non --release) on OSX
#   uses: actions-rs/cargo@v1.0.1
#   with:
#     use-cross: false
#     command: test
#     args: --target x86_64-unknown-linux-musl --all-features --verbose