Skip to content

✨ Add support for sorting data in insert_assert based on previous data (e.g. from a previous run) to minimize the diff #315

✨ Add support for sorting data in insert_assert based on previous data (e.g. from a previous run) to minimize the diff

✨ Add support for sorting data in insert_assert based on previous data (e.g. from a previous run) to minimize the diff #315

Workflow file for this run

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 }}