123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- name: Pip
- on:
- workflow_dispatch:
- pull_request:
- push:
- branches:
- - master
- - stable
- - v*
- release:
- types:
- - published
- jobs:
- # This builds the sdists and wheels and makes sure the files are exactly as
- # expected. Using Windows and Python 2.7, since that is often the most
- # challenging matrix element.
- test-packaging:
- name: 🐍 2.7 • 📦 tests • windows-latest
- runs-on: windows-latest
- steps:
- - uses: actions/checkout@v2
- - name: Setup 🐍 2.7
- uses: actions/setup-python@v2
- with:
- python-version: 2.7
- - name: Prepare env
- run: python -m pip install -r tests/requirements.txt --prefer-binary
- - name: Python Packaging tests
- run: pytest tests/extra_python_package/
- # This runs the packaging tests and also builds and saves the packages as
- # artifacts.
- packaging:
- name: 🐍 3.8 • 📦 & 📦 tests • ubuntu-latest
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Setup 🐍 3.8
- uses: actions/setup-python@v2
- with:
- python-version: 3.8
- - name: Prepare env
- run: python -m pip install -r tests/requirements.txt build twine --prefer-binary
- - name: Python Packaging tests
- run: pytest tests/extra_python_package/
- - name: Build SDist and wheels
- run: |
- python -m build
- PYBIND11_GLOBAL_SDIST=1 python -m build
- - name: Check metadata
- run: twine check dist/*
- - name: Save standard package
- uses: actions/upload-artifact@v2
- with:
- name: standard
- path: dist/pybind11-*
- - name: Save global package
- uses: actions/upload-artifact@v2
- with:
- name: global
- path: dist/pybind11_global-*
- # When a GitHub release is made, upload the artifacts to PyPI
- upload:
- name: Upload to PyPI
- runs-on: ubuntu-latest
- if: github.event_name == 'release' && github.event.action == 'published'
- needs: [packaging]
- steps:
- - uses: actions/setup-python@v2
- # Downloads all to directories matching the artifact names
- - uses: actions/download-artifact@v2
- - name: Publish standard package
- uses: pypa/gh-action-pypi-publish@v1.4.2
- with:
- password: ${{ secrets.pypi_password }}
- packages_dir: standard/
- - name: Publish global package
- uses: pypa/gh-action-pypi-publish@v1.4.2
- with:
- password: ${{ secrets.pypi_password_global }}
- packages_dir: global/
|