Migrate to poetry #1864
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: | |
- master | |
tags: ["v*"] | |
pull_request: | |
branches: | |
- master | |
schedule: | |
- cron: "0 6 * * *" # Daily 6AM UTC build | |
jobs: | |
lint: | |
name: Linter | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.13" | |
cache: "poetry" | |
- name: Install poetry | |
uses: abatilo/actions-poetry@v2 | |
# - name: Setup Python | |
# uses: actions/setup-python@v2 | |
# - name: Get pip cache dir | |
# id: pip-cache | |
# run: | | |
# echo "::set-output name=dir::$(pip cache dir)" # - name: Cache | |
# - name: Cache PyPI | |
# uses: actions/cache@v2 | |
# with: | |
# key: pip-lint-${{ hashFiles('requirements-dev.txt') }} | |
# path: ${{ steps.pip-cache.outputs.dir }} | |
# restore-keys: | | |
# pip-lint- | |
# - name: Install dependencies | |
# uses: py-actions/[email protected] | |
# with: | |
# path: requirements-dev.txt | |
- name: Install dependencies | |
run: | | |
poetry install | |
- name: Run lint | |
run: | | |
make lint | |
- name: Build package | |
run: poetry build | |
- name: Check package metadata | |
run: poetry check | |
# - name: Prepare twine checker | |
# run: | | |
# pip install -U twine wheel | |
# python setup.py sdist bdist_wheel | |
# - name: Run twine checker | |
# run: | | |
# twine check dist/* | |
test: | |
name: Test | |
needs: lint | |
strategy: | |
matrix: | |
pyver: ["3.9", "3.10", "3.11", "3.12"] | |
fail-fast: false | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.pyver }} | |
cache: "poetry" | |
- name: Install poetry | |
uses: abatilo/actions-poetry@v2 | |
# - name: Setup Python ${{ matrix.pyver }} | |
# uses: actions/setup-python@v2 | |
# with: | |
# python-version: ${{ matrix.pyver }} | |
# - name: Get pip cache dir | |
# id: pip-cache | |
# run: | | |
# echo "::set-output name=dir::$(pip cache dir)" # - name: Cache | |
# - name: Cache PyPI | |
# uses: actions/cache@v2 | |
# with: | |
# key: pip-ci-${{ matrix.pyver }}-${{ hashFiles('requirements-dev.txt') }} | |
# path: ${{ steps.pip-cache.outputs.dir }} | |
# restore-keys: | | |
# pip-ci- | |
# - name: Install dependencies | |
# uses: py-actions/py-dependency-install@v2 | |
# with: | |
# path: requirements-dev.txt | |
- name: Install dependencies | |
run: poetry install | |
- name: Run unittests | |
env: | |
COLOR: "yes" | |
run: | | |
make cov | |
python -m coverage xml | |
- name: Upload coverage | |
uses: codecov/codecov-action@v1 | |
with: | |
file: ./coverage.xml | |
flags: unit | |
fail_ci_if_error: false | |
deploy: | |
name: Deploy | |
runs-on: ubuntu-latest | |
needs: test | |
# Run only on pushing a tag | |
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.13" | |
cache: "poetry" | |
- name: Install poetry | |
uses: abatilo/actions-poetry@v2 | |
- name: Install dependencies | |
run: | | |
poetry install | |
- name: Build package | |
run: poetry build | |
- name: Publish to PyPI | |
env: | |
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }} | |
run: poetry publish --build | |
# - name: Make dists | |
# run: python setup.py sdist bdist_wheel | |
# - name: PyPI upload | |
# env: | |
# TWINE_USERNAME: __token__ | |
# TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} | |
# run: | | |
# twine upload dist/* |