✨ Add support for sorting data in insert_assert
based on previous data (e.g. from a previous run) to minimize the diff
#318
Workflow file for this run
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: CI | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- '**' | |
pull_request: {} | |
env: | |
COLUMNS: 150 | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- run: pip install -r requirements/linting.txt -r requirements/pyproject.txt | |
- run: mypy devtools | |
- uses: pre-commit/action@v3.0.0 | |
with: | |
extra_args: --all-files --verbose | |
docs-build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- run: pip install -r requirements/docs.txt -r requirements/pyproject.txt | |
- run: pip install . | |
- run: make docs | |
- name: Store docs site | |
uses: actions/upload-artifact@v3 | |
with: | |
name: docs | |
path: site | |
test: | |
name: test py${{ matrix.python-version }} on ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu, macos, windows] | |
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] | |
env: | |
PYTHON: ${{ matrix.python-version }} | |
OS: ${{ matrix.os }} | |
EXTRAS: yes | |
runs-on: ${{ matrix.os }}-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: set up python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- run: pip install -r requirements/testing.txt -r requirements/pyproject.txt | |
- run: pip freeze | |
- name: test with extras | |
run: make test | |
- run: coverage xml | |
- uses: codecov/codecov-action@v3 | |
with: | |
file: ./coverage.xml | |
env_vars: EXTRAS,PYTHON,OS | |
- name: uninstall extras | |
run: pip uninstall -y multidict numpy pydantic asyncpg sqlalchemy | |
- name: test without extras | |
run: make test | |
- run: coverage xml | |
- uses: codecov/codecov-action@v3 | |
with: | |
file: ./coverage.xml | |
env_vars: EXTRAS,PYTHON,OS | |
env: | |
EXTRAS: no | |
# https://github.com/marketplace/actions/alls-green#why used for branch protection checks | |
check: | |
if: always() | |
needs: [test, lint, docs-build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Decide whether the needed jobs succeeded or failed | |
uses: re-actors/alls-green@release/v1 | |
with: | |
jobs: ${{ toJSON(needs) }} | |
deploy: | |
needs: | |
- check | |
if: "success() && startsWith(github.ref, 'refs/tags/')" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: set up python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: get docs | |
uses: actions/download-artifact@v3 | |
with: | |
name: docs | |
path: site | |
- name: check GITHUB_REF matches package version | |
id: check-tag | |
uses: samuelcolvin/check-python-version@v4.1 | |
with: | |
version_file_path: devtools/version.py | |
- name: install | |
run: pip install build twine | |
- name: build | |
run: python -m build | |
- run: twine check dist/* | |
- name: upload to pypi | |
run: twine upload dist/* | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.pypi_token }} | |
- name: publish docs | |
if: '!fromJSON(steps.check-tag.outputs.IS_PRERELEASE)' | |
uses: cloudflare/wrangler-action@2.0.0 | |
with: | |
apiToken: ${{ secrets.cloudflare_api_token }} | |
command: pages publish --project-name=python-devtools --branch=main site | |
env: | |
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.cloudflare_account_id }} |