Skip to content

build

build #243

Workflow file for this run

name: build
on:
push:
pull_request:
schedule: # nightly build
- cron: '0 0 * * *'
jobs:
# enable the following mypy job once it is added to tox
#
# mypy:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# - uses: actions/setup-python@v2
# - run: python -m pip install tox
# - run: python -m tox -e mypy
test:
strategy:
matrix:
tox-env: ["py"]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
include:
- python-version: "3.11"
tox-env: "lint"
name: "lint"
- python-version: "3.8" # match readthedocs
tox-env: "docs"
name: "docs"
- python-version: "3.11"
tox-env: "py-marshmallowdev"
name: "test marshmallow 'dev' on py3.11"
- python-version: "3.7"
tox-env: "py-mindeps"
name: "test mindeps on py3.7"
name: "${{ matrix.name || format('test py{0}', matrix.python-version ) }}"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- run: python -m pip install tox
- run: python -m tox -e ${{ matrix.tox-env }}
# TODO:
# the following config is copied from the webargs release process and should be applicable here
# however, it needs credentials in the project repo to publish, and it may be possible to refine
# this into something even better
#
#
# # this duplicates pre-commit.ci, so only run it on tags
# # it guarantees that linting is passing prior to a release
# lint-pre-release:
# if: startsWith(github.ref, 'refs/tags')
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# - uses: actions/setup-python@v2
# - run: python -m pip install tox
# - run: python -m tox -e lint
#
# release:
# needs: [mypy, test, lint-pre-release]
# runs-on: ubuntu-latest
# if: startsWith(github.ref, 'refs/tags')
# steps:
# - uses: actions/checkout@v2
# - uses: actions/setup-python@v2
# - name: install requirements
# run: python -m pip install build twine
# - name: build dists
# run: python -m build
# - name: check package metadata
# run: twine check dist/*
# - name: publish
# run: twine upload -u __token__ -p ${{ secrets.PYPI_API_TOKEN }} dist/*