Skip to content

Commit

Permalink
Merge pull request #7 from Lennolium/dev
Browse files Browse the repository at this point in the history
Added actions worklfow
  • Loading branch information
Lennolium committed Feb 4, 2024
2 parents c99819f + 5c24bb8 commit f32ac8d
Show file tree
Hide file tree
Showing 2 changed files with 117 additions and 0 deletions.
96 changes: 96 additions & 0 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Run tests

name: "Test Suite"

on:
push:
branches:
- main
pull_request:

defaults:
run:
shell: bash

jobs:
tests:
name: "Python ${{ matrix.python-version }} on ${{ matrix.os }}"
runs-on: "${{ matrix.os }}"

strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
python-version:
- "3.7"
- "3.8"
- "3.9"
- "3.10"

steps:
- name: "Check out the repo"
uses: "actions/checkout@v2"

- name: "Set up Python"
uses: "actions/setup-python@v2"
with:
python-version: "${{ matrix.python-version }}"

- name: "Install dependencies"
run: |
python -m pip install tox tox-gh-actions
- name: "Run tox for ${{ matrix.python-version }}"
run: |
python -m tox
- name: "Upload coverage data"
uses: actions/upload-artifact@v3
with:
name: covdata
path: .coverage.*

coverage:
name: Coverage
needs: tests
runs-on: ubuntu-latest
steps:
- name: "Check out the repo"
uses: "actions/checkout@v2"

- name: "Set up Python"
uses: "actions/setup-python@v2"
with:
python-version: "3.12"

- name: "Install dependencies"
run: |
python -m pip install tox tox-gh-actions
- name: "Download coverage data"
uses: actions/download-artifact@v3
with:
name: covdata

- name: "Combine"
run: |
python -m tox -e coverage
export TOTAL=$(python -c "import json;print(json.load(open('coverage.json'))['totals']['percent_covered_display'])")
echo "total=$TOTAL" >> $GITHUB_ENV
echo "### Total coverage: ${TOTAL}%" >> $GITHUB_STEP_SUMMARY
- name: "Make badge"
uses: schneegans/dynamic-badges-action@v1.4.0
with:
# GIST_TOKEN is a GitHub personal access token with scope "gist". Saved in the repository secrets envs.
auth: ${{ secrets.GIST_TOKEN }}
gistID: 7b01199ddb23cc1e36b2eef17c22edd3 # Gist ID here
filename: covbadge.json
label: Coverage
message: ${{ env.total }}%
minColorRange: 50
maxColorRange: 90
valColorRange: ${{ env.total }}
21 changes: 21 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[tox]
envlist = py38,py39,py310,py311,py312,coverage

[testenv]
commands =
python -m coverage run -p -m pytest

[testenv:coverage]
basepython = python3.12
commands =
python -m coverage combine
python -m coverage report -m --skip-covered
python -m coverage json

[gh-actions]
python =
3.8: py38
3.9: py39
3.10: py310
3.11: py311
3.12: py312

0 comments on commit f32ac8d

Please sign in to comment.