Skip to content

Package

Package #2

Workflow file for this run

name: Package
on:
push:
tags:
- v*.*.*
jobs:
# wheel-linux-aarch64:
# name: Build Linux wheels (Aarch64)
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@v3
# with:
# submodules: true
# - name: Set up QEMU
# id: qemu
# uses: docker/setup-qemu-action@v3
# with:
# platforms: arm64
# - name: Build manylinux wheels
# uses: pypa/cibuildwheel@v2.21.3
# env:
# CIBW_ARCHS: aarch64
# CIBW_BUILD: 'cp*-manylinux_aarch64'
# CIBW_BEFORE_BUILD: pip install cython
# CIBW_BUILD_VERBOSITY: 2
# CIBW_TEST_REQUIRES: importlib-resources
# with:
# output-dir: dist
# - uses: actions/upload-artifact@v4
# with:
# name: wheels-manylinux_aarch64
# path: dist/*
wheel-linux-x86_64:
name: Build Linux wheels (x86-64)
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Build manylinux wheels
uses: pypa/cibuildwheel@v2.21.3
env:
CIBW_ARCHS: x86_64
CIBW_BUILD: 'cp*-manylinux_x86_64'
CIBW_BEFORE_BUILD: pip install cython
CIBW_BUILD_VERBOSITY: 2
CIBW_TEST_REQUIRES: importlib-resources
with:
output-dir: dist
- uses: actions/upload-artifact@v4
with:
name: wheels-manylinux_x86_64
path: dist/*
# wheel-macos-x86_64:
# name: Build MacOS wheels (x86-64)
# runs-on: macOS-12
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Build manylinux wheels
# uses: pypa/cibuildwheel@v2.21.3
# env:
# CIBW_ARCHS: x86_64
# CIBW_BUILD: 'cp*-macosx_x86_64'
# CIBW_BEFORE_BUILD: pip install cython
# CIBW_BUILD_VERBOSITY: 2
# CIBW_TEST_REQUIRES: importlib-resources
# with:
# output-dir: dist
# - uses: actions/upload-artifact@v4
# with:
# name: wheels-macosx_x86_64
# path: dist/*
# wheel-macos-aarch64:
# name: Build MacOS wheels (Aarch64)
# runs-on: macOS-12
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Build manylinux wheels
# uses: pypa/cibuildwheel@v2.21.3
# env:
# CIBW_ARCHS: arm64
# CIBW_BUILD: 'cp*-macosx_arm64'
# CIBW_BEFORE_BUILD: pip install cython
# CIBW_BUILD_VERBOSITY: 2
# CIBW_TEST_REQUIRES: importlib-resources
# with:
# output-dir: dist
# - uses: actions/upload-artifact@v4
# with:
# name: wheels-macosx_arm64
# path: dist/*
sdist:
runs-on: ubuntu-latest
name: Build source distribution
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: true
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install build requirements
run: python -m pip install -r .github/workflows/requirements.txt
- name: Build wheel distribution
run: python -m build --sdist
- name: Store built wheels
uses: actions/upload-artifact@v4
with:
name: sdist
path: dist/*
# test-sdist:
# runs-on: ubuntu-latest
# name: Test source distribution
# needs:
# - sdist
# steps:
# - name: Setup Python 3.11
# uses: actions/setup-python@v5
# with:
# python-version: '3.11'
# - name: Download source distribution
# uses: actions/download-artifact@v4
# with:
# name: sdist
# path: dist/
# - name: Update pip to latest version
# run: python -m pip install -U pip setuptools wheel
# - name: Install built wheel
# run: python -m pip install --no-binary pyncbitk --find-links=dist pyncbitk
# - name: Run tests without coverage
# run: python -m unittest pyncbitk.tests -vv
upload:
environment: PyPI
runs-on: ubuntu-latest
name: Upload
permissions:
id-token: write
needs:
- sdist
# - test-sdist
# - wheel-linux-aarch64
- wheel-linux-x86_64
# - wheel-macos-x86_64
# - wheel-macos-aarch64
steps:
- name: Download source distribution
uses: actions/download-artifact@v4
with:
name: sdist
path: dist/
merge-multiple: true
- name: Download wheel distributions
uses: actions/download-artifact@v4
with:
pattern: wheels-*
path: dist/
merge-multiple: true
- name: Publish distributions to PyPI
if: startsWith(github.ref, 'refs/tags/v')
uses: pypa/gh-action-pypi-publish@release/v1
release:
permissions:
contents: write
environment: GitHub Releases
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/v')"
name: Release
needs: upload
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Release a Changelog
uses: rasmus-saks/release-a-changelog-action@v1.2.0
with:
github-token: '${{ secrets.GITHUB_TOKEN }}'
# aur:
# environment: Arch Linux User Repository
# runs-on: ubuntu-latest
# if: "!contains(github.ref, 'rc') && !contains(github.ref, 'alpha') && !contains(github.ref, 'post')"
# name: Update AUR package
# needs:
# - sdist
# - upload
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# with:
# submodules: true
# - name: Set up Python 3.12
# uses: actions/setup-python@v5
# with:
# python-version: 3.12
# - name: Download source distribution
# uses: actions/download-artifact@v4
# with:
# name: sdist
# path: dist/
# merge-multiple: true
# - name: Extract package version
# run: echo PKGVER=$(echo '${{ github.ref }}' | cut -d'v' -f2) >> $GITHUB_ENV
# - name: Compute SHA256 of source distribution
# run: "echo SHA256=$(sha256sum dist/pyncbitk-${{ env.PKGVER }}.tar.gz | cut -f1 -d' ') >> $GITHUB_ENV"
# - name: Generate PKGBUILD
# run: 'sed -e "s/%pkgver/${{ github.ref }}/g" -e "s/%sha256sum/${{ env.SHA256 }}/g" pkg/aur/PKGBUILD.in > pkg/aur/PKGBUILD'
# - name: Update package
# uses: KSXGitHub/github-actions-deploy-aur@v2.7.2
# with:
# pkgname: python-pyncbitk
# pkgbuild: pkg/aur/PKGBUILD
# commit_username: ${{ secrets.AUR_USER }}
# commit_email: ${{ secrets.AUR_EMAIL }}
# ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
# commit_message: ${{ github.event.head_commit.message }}