Release 3.3.2b2 #72
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: Test, build, publish | |
# Run tests (all branches), | |
# for tags build wheels, publish wheels to PyPI and Github Releases. | |
on: [push, pull_request] | |
jobs: | |
run-tests: | |
env: | |
not_in_conda: "[]" | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "pypy3.7"] | |
include: | |
- os: ubuntu-latest | |
os-name: Linux | |
pip-cache-path: ~/.cache/pip | |
- os: macos-latest | |
os-name: MacOS | |
pip-cache-path: ~/Library/Caches/pip | |
- os: windows-latest | |
os-name: w32 | |
pip-cache-path: ~\AppData\Local\pip\Cache | |
exclude: | |
- os: windows-latest | |
python-version: "pypy3.7" | |
name: Python ${{ matrix.python-version }} @ ${{ matrix.os-name }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
# Setup Python/pip | |
- uses: actions/checkout@v2 | |
# Python 3.7 is needed for ghactions-release script | |
- uses: s-weigand/setup-conda@v1 | |
with: | |
conda-channels: conda-forge | |
python-version: "3.7" | |
if: ${{ matrix.python-version == '2.7' && runner.os != 'Windows' && startsWith(github.ref, 'refs/tags/') }} | |
- uses: s-weigand/setup-conda@v1 | |
with: | |
conda-channels: conda-forge | |
python-version: ${{ matrix.python-version }} | |
if: ${{ !contains(fromJSON(env.not_in_conda), matrix.python-version) }} | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
if: ${{ contains(fromJSON(env.not_in_conda), matrix.python-version) }} | |
- name: Cache pip | |
uses: actions/cache@v3 | |
with: | |
path: ${{ matrix.pip-cache-path }} | |
key: ${{ runner.os }}-pip | |
# Setup tox | |
- name: Install dependencies | |
run: | | |
python --version | |
python -m ensurepip | |
python -m pip install --upgrade pip setuptools wheel | |
pip --version | |
pip install --upgrade virtualenv "tox >= 3.15, < 4" | |
- name: Set TOXENV | |
run: | | |
import os, sys | |
ld_library_path = None | |
if hasattr(sys, 'pypy_version_info'): | |
toxenv = 'pypy3' | |
else: | |
pyver = '%d%d' % tuple(sys.version_info[:2]) | |
if os.name == 'posix': | |
if pyver == '27': # Python 2.7 on Linux requires `$LD_LIBRARY_PATH` | |
ld_library_path = os.path.join( | |
os.path.dirname(os.path.dirname(sys.executable)), 'lib') | |
toxenv = 'py%s' % pyver | |
if os.name == 'posix': | |
toxenv += ',py%s-flake8' % pyver | |
with open(os.environ['GITHUB_ENV'], 'a') as f: | |
if ld_library_path: | |
f.write('LD_LIBRARY_PATH=' + ld_library_path + '\n') | |
f.write('TOXENV=' + toxenv + '\n') | |
print(toxenv) | |
shell: python | |
- name: Run tox | |
run: | | |
python -c "import os; print(os.environ['TOXENV'])" | |
tox --version | |
tox | |
- name: Build and publish sdist and wheel on Unix | |
run: | | |
devscripts/CI/ghactions-release | |
env: | |
TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }} | |
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} | |
if: ${{ runner.os != 'Windows' && startsWith(github.ref, 'refs/tags/') }} | |
- name: Build and publish wheel on w32 | |
run: | | |
pip install -U pip setuptools twine wheel | |
python setup.py bdist_wheel | |
twine upload --disable-progress-bar --skip-existing dist\* | |
if: ${{ runner.os == 'Windows' && startsWith(github.ref, 'refs/tags/') }} | |
env: | |
TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }} | |
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} | |
- name: Publish wheel to Releases | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "dist/*" | |
allowUpdates: true | |
bodyFile: "LATEST-CHANGES.rst" | |
omitBodyDuringUpdate: true | |
omitNameDuringUpdate: true | |
omitPrereleaseDuringUpdate: true | |
prerelease: true | |
replacesArtifacts: false | |
skipIfReleaseExists: false | |
updateOnlyUnreleased: false | |
if: ${{ startsWith(github.ref, 'refs/tags/') }} |