slow5lib-sys 0.4.0

Low-level bindings to the slow5lib C library
Documentation
name: C/C++ CI

on:
  push:
    branches: [ master, dev, cleanup ]
  pull_request:
    branches: [ master, dev, cleanup ]

jobs:
  ubuntu_14:
    name: ubuntu_14
    runs-on: ubuntu-18.04
    container: ubuntu:14.04
    steps:
    - uses: actions/checkout@v2
    - name: install packages
      run: sudo apt-get update && sudo apt-get install -y zlib1g-dev gcc g++ autoconf automake make
    - name: env
      run: lsb_release -a &&  ldd --version && gcc --version && g++ --version
    - name: build
      run:  make -j8
    - name: test
      run: make test
  ubuntu_16:
    name: Ubuntu 16
    runs-on: ubuntu-18.04
    container: ubuntu:16.04
    steps:
    - uses: actions/checkout@v2
    - name: install packages
      run: apt-get update && apt-get install -y zlib1g-dev gcc g++ autoconf automake make
    - name: build
      run: make -j8
    - name: test
      run: make test
  ubuntu_18:
    name: Ubuntu 18
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v2
    - name: install packages
      run: sudo apt-get update && sudo apt-get install -y zlib1g-dev valgrind
    - name: build
      run:  make -j8
    - name: test
      run: make test
    - name: test valgrind
      run: ./test/test.sh mem
    - name: examples
      run: make examples
  ubuntu_18_zstd:
    name: Ubuntu 18 with zstd
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/checkout@v2
    - name: install packages
      run: sudo apt-get update && sudo apt-get install -y zlib1g-dev libzstd-dev valgrind
    - name: build
      run:  make -j8 zstd=1
    - name: test
      run: make test zstd=1
    - name: test valgrind
      run: ./test/test.sh mem
  ubuntu_20:
    name: Ubuntu 20
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v2
    - name: install packages
      run: sudo apt-get update && sudo apt-get install zlib1g-dev
    - name: build-gcc
      run: make -j8
    - name: test-gcc
      run: make test
    - name: build-clang
      run: make clean && make CC=clang -j8
    - name: test-clang
      run: make test
  ubuntu_20_icc:
    name: Ubuntu 20 icc
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v2
      with:
        submodules: recursive
    - name: Intel Apt repository
      timeout-minutes: 1
      run: |
        wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
        sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
        rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
        echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
        sudo apt-get update
    - name: install packages
      run: sudo apt-get install -y zlib1g-dev libzstd-dev intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
    - name: Setup Intel oneAPI environment
      run: |
        source /opt/intel/oneapi/setvars.sh
        printenv >> $GITHUB_ENV
    - name: build
      run: make CC=icc -j8
    - name: test
      run: make test CC=icc
    - name: build zstd
      run: make clean && make CC=icc -j8 zstd=1
    - name: test zstd
      run: make test zstd=1 CC=icc
  os_x_10:
    name: OSX 10
    runs-on: macos-10.15
    steps:
    - uses: actions/checkout@v2
    - name: build
      run: make -j8
    - name: test
      run: make test
    - name: examples
      run: make examples
  os_x_10_zstd:
    name: OSX 10 zstd
    runs-on: macos-10.15
    steps:
    - uses: actions/checkout@v2
    - name: install packages
      run: brew install zstd
    - name: build
      run: make -j8 zstd=1
    - name: test
      run: make test zstd=1
  # arm64:
  #   name: ubuntu arm
  #   runs-on: ubuntu-latest
  #   steps:
  #   - run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
  #   - uses: docker://multiarch/ubuntu-core:arm64-bionic
  #     with:
  #       args: 'uname -a'
  #   - uses: actions/checkout@v1
  #   - uses: docker://multiarch/ubuntu-core:arm64-bionic
  #     with:
  #       args: >
  #         bash -c "apt-get update &&
  #         apt-get install -y zlib1g-dev gcc make &&
  #         ldd --version && gcc --version &&
  #         make && make test