Skip to content

Fix release workflow #108

Fix release workflow

Fix release workflow #108

Workflow file for this run

name: build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10"]
steps:
- name: Checkout the repo
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v3
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: |
poetry install --no-interaction --no-root
- name: Install library
run: |
poetry install --no-interaction
- name: Test with pytest
run: |
source .venv/bin/activate
pytest --cov-report html --cov=src/ tests/
rm htmlcov/.gitignore
- name: Publish coverage report
if: ${{ github.ref == 'refs/heads/main' && matrix.python-version == '3.10' }}
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: htmlcov
target-folder: _coverage
- name: Extract coverage percent
if: ${{ github.ref == 'refs/heads/main' && matrix.python-version == '3.10' }}
run: |
echo "COVERAGE=$(grep -oP 'pc_cov">\K([0-9]+)' htmlcov/index.html)" >> $GITHUB_ENV
- name: Generate coverage badge
if: ${{ github.ref == 'refs/heads/main' && matrix.python-version == '3.10' }}
uses: knightdave/anybadge-action@v1.1.0
with:
file: docs/_badges/coverage.svg
label: coverage
value: ${{ env.COVERAGE }}
value_format: "%d%%"
anybadge_args: 50=red 60=orange 80=yellow 100=green
template: docs/_badges/template.svg
overwrite: true
- name: Publish badge
if: ${{ github.ref == 'refs/heads/main' && matrix.python-version == '3.10' }}
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: docs/_badges
target-folder: _badges
clean: false
result:
if: ${{ always() }}
runs-on: ubuntu-latest
needs: [build]
steps:
- name: Checkout the repo
uses: actions/checkout@v3
- name: Get build result
run: |
if [[ ${{ needs.build.result }} == "success" || ${{ needs.build.result }} == "skipped" ]]; then
exit 0
else
exit 1
fi
- name: Generate passing badge
if: success()
uses: knightdave/anybadge-action@v1.1.0
with:
file: docs/_badges/build.svg
label: build
value: passing
color: green
template: docs/_badges/template.svg
overwrite: true
- name: Generate failing badge
if: failure()
uses: knightdave/anybadge-action@v1.1.0
with:
file: docs/_badges/build.svg
label: build
value: failing
color: red
template: docs/_badges/template.svg
overwrite: true
- name: Publish badge
if: success() || failure()
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: docs/_badges
target-folder: _badges
clean: false