Merge pull request #431 from tskit-dev/dependabot/github_actions/dot-… #187
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and test wheels | |
on: | |
push: | |
branches: | |
- main | |
- test | |
tags: | |
- '*' | |
release: | |
types: [published] | |
jobs: | |
manylinux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- name: Build sdist | |
shell: bash | |
run: | | |
python -m pip install --upgrade build | |
python -m build | |
- name: Upload | |
uses: actions/upload-artifact@v3 | |
with: | |
name: sdist-wheel | |
path: dist | |
OSX-test: | |
needs: ['manylinux'] | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
python: [3.8, 3.8, 3.9, "3.10", 3.11] | |
steps: | |
- name: Download wheels | |
uses: actions/[email protected] | |
with: | |
name: sdist-wheel | |
- name: Set up Python ${{ matrix.python }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install wheel and test | |
run: | | |
python -VV | |
pip install wheel | |
# Install the local wheel, after getting deps | |
pip install tsdate --only-binary tsdate -f . | |
pip uninstall --yes msprime | |
pip install tsdate --no-index --only-binary tsdate -f . | |
python -c "import tsdate" | |
windows-test: | |
needs: ['manylinux'] | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
python: [3.8, 3.9, "3.10", 3.11] | |
wordsize: [64] | |
steps: | |
- name: Download wheels | |
uses: actions/[email protected] | |
with: | |
name: sdist-wheel | |
- name: Set up Python ${{ matrix.python }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install wheel and test | |
run: | | |
python -VV | |
pip install wheel | |
# Install the local wheel, after getting deps | |
pip install tsdate --only-binary tsdate -f . | |
pip uninstall --yes msprime | |
pip install tsdate --no-index --only-binary tsdate -f . | |
python -c "import tsdate" | |
manylinux-test: | |
runs-on: ubuntu-latest | |
needs: ['manylinux'] | |
strategy: | |
matrix: | |
python: [3.8, 3.9, "3.10", 3.11] | |
steps: | |
- name: Download wheels | |
uses: actions/[email protected] | |
with: | |
name: sdist-wheel | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install wheel and test | |
run: | | |
python -VV | |
pip install wheel | |
# Install the local wheel, after getting deps | |
pip install tsdate --only-binary tsdate -f . | |
pip uninstall --yes msprime | |
pip install tsdate --no-index --only-binary tsdate -f . | |
python -c "import tsdate" | |
PyPI_Upload: | |
runs-on: ubuntu-latest | |
needs: ['windows-test', 'OSX-test', 'manylinux-test'] | |
environment: release | |
permissions: | |
id-token: write | |
steps: | |
- name: Download all | |
uses: actions/[email protected] | |
- name: Move to dist | |
run: | | |
mkdir dist | |
cp */*.{whl,gz} dist/. | |
- name: Publish distribution to Test PyPI | |
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
repository_url: https://test.pypi.org/legacy/ | |
- name: Publish distribution to PRODUCTION PyPI | |
if: github.event_name == 'release' | |
uses: pypa/gh-action-pypi-publish@release/v1 | |