Skip to content

MinGW version of pysam #311

MinGW version of pysam

MinGW version of pysam #311

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
direct:
runs-on: ${{ matrix.os }}-latest
strategy:
matrix:

Check failure on line 9 in .github/workflows/ci.yaml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci.yaml

Invalid workflow file

You have an error in your yaml syntax on line 9
os: [ubuntu, macos, windows]
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
exclude:
# Run only the latest few 3.x versions on macOS
- os: macos
python-version: 3.7
- os: macos
python-version: 3.8
- os: macos
python-version: 3.9
# MSYS2 installs Python with pacman
python-version: 3.7
- os: windows
python-version: 3.8
- os: windows
python-version: 3.9
- os: windows
python-version: 3.10
- os: windows
python-version: 3.11
- os: windows
python-version: 3.12
os: [windows]
- {msystem: UCRT64, arch: x86_64}
steps:
- name: Checkout pysam
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
exclude:
- os: windows
- name: Install prerequisite Python libraries
run: pip install cython pytest pytest-pep8 setuptools
exclude:
- os: windows
- name: Install Linux build prerequisites
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -q --no-install-recommends --no-install-suggests libcurl4-openssl-dev
- name: Update macOS build prerequisites
if: runner.os == 'macOS'
run: |
brew unlink xz || true # Remove brewed liblzma as it is not multiarch
- name: Install MSYS2 build prerequisites
if: runner.os == 'Windows'
uses: msys2/setup-msys2@v2
with:
msystem: ucrt64
update: true
install: >-
mingw-w64-${{ matrix.config.arch }}-base-devel
mingw-w64-${{ matrix.config.arch }}-cython
mingw-w64-${{ matrix.config.arch }}-python
mingw-w64-${{ matrix.config.arch }}-pip
mingw-w64-${{ matrix.config.arch }}-setuptools
mingw-w64-${{ matrix.config.arch }}-curl
mingw-w64-${{ matrix.config.arch }}-libdeflate
mingw-w64-${{ matrix.config.arch }}-bzip2
mingw-w64-${{ matrix.config.arch }}-zlib
mingw-w64-${{ matrix.config.arch }}-python-pytest
mingw-w64-${{ matrix.config.arch }}-xz
mingw-w64-${{ matrix.config.arch }}-openssl
mingw-w64-${{ matrix.config.arch }}-libtre-git
mingw-w64-${{ matrix.config.arch }}-libiconv
- name: Build (directly from checkout)
run: python setup.py build
- name: Install test prerequisites
run: |
case $RUNNER_OS in
Linux)
sudo apt-get install -q --no-install-recommends --no-install-suggests samtools bcftools tabix
;;
macOS)
brew install -q samtools bcftools
;;
Windows)
pacman -S --noconfirm mingw-w64-${{ matrix.config.arch }}-samtools mingw-w64-${{ matrix.config.arch }}-bcftools
;;
esac
- name: Run tests
run: |
export PYTHONPATH=$(echo $GITHUB_WORKSPACE/build/lib.*)
export REF_PATH=':'
pytest
sdist:
runs-on: ${{ matrix.os }}-latest
strategy:
matrix:
os: [ubuntu, macos]
python-version: ['3.10']
steps:
- name: Checkout pysam
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install prerequisite Python libraries
run: pip install cython pytest pytest-pep8
- name: Install build prerequisites
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -q --no-install-recommends --no-install-suggests libcurl4-openssl-dev
- name: Create source distribution
run: python setup.py sdist --owner=root --group=root
- name: Build (via sdist tarball)
run: pip install --verbose --no-deps --no-binary=':all:' pysam-*.tar.gz
working-directory: dist
- name: Install test prerequisites
run: |
case $RUNNER_OS in
Linux)
sudo apt-get install -q --no-install-recommends --no-install-suggests samtools bcftools tabix
;;
macOS)
brew install -q samtools bcftools
;;
esac
- name: Run tests
run: REF_PATH=':' pytest
- name: Upload sdist tarball
if: runner.os == 'Linux'
uses: actions/upload-artifact@v3
with:
name: sdist
path: dist/pysam-*.tar.gz
retention-days: 14
conda:
timeout-minutes: 20
runs-on: ${{ matrix.os }}-latest
strategy:
matrix:
os: [ubuntu]
python-version: ['3.7']
defaults:
run:
shell: bash -l {0} # needed for conda activation
env:
HTSLIB_CONFIGURE_OPTIONS: "--disable-libcurl"
steps:
- name: Checkout pysam
uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v2
with:
channel-priority: strict
activate-environment: testenv
auto-activate-base: false
use-only-tar-bz2: true
- name: Set up Conda and Python ${{ matrix.python-version }}
run: |
conda config --add channels bioconda --add channels conda-forge
conda install python=${{ matrix.python-version }} cython
- name: Build (directly from checkout)
run: python setup.py install
- name: Install test prerequisites via Conda
run: conda install "samtools>=1.11" "bcftools>=1.11" "htslib>=1.11" pytest
- name: Run tests
run: REF_PATH=':' pytest