-
Notifications
You must be signed in to change notification settings - Fork 3
51 lines (45 loc) · 1.55 KB
/
pull-request-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
name: QMI Python CI runner on pull request
on:
pull_request:
branches: [ "main" ]
paths-ignore:
- README.md
- CHANGELOG.md
- .gitignore
- ACKNOWLEDGEMENTS.md
- LICENSE.md
- CONTRIBUTING.md
- TESTING.md
env:
BADGES_DIR: ".github/badges"
jobs:
build:
strategy:
max-parallel: 3
matrix:
python-version: ["3.11", "3.12", "3.13"]
uses: ./.github/workflows/reusable-ci-workflows.yml
with:
python-version: ${{ matrix.python-version }}
ref: ${{ github.head_ref }}
create-badges:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
- name: Generate and push badges
if: ${{ matrix.python-version == '3.11' }}
run: |
pip install anybadge
anybadge -o -l pylint -v $(tail -n 2 pylint.log | grep -o '[0-9]\{1,2\}\.[0-9]\{2\}' | head -n 1) -f $BADGES_DIR/pylint.svg 2=red 4=orange 8=yellow 10=green
anybadge -o -l mypy -v $([ -n "$(tail -n 1 mypy.log | grep -e '^Succes')" ] && echo pass || echo fail) -f $BADGES_DIR/mypy.svg fail=red pass=green
COVERAGE_PERC=$(grep "TOTAL" coverage.log | grep -Eo '[0-9.]+%' | sed 's/%//')
anybadge -o -l coverage -v $COVERAGE_PERC -f $BADGES_DIR/coverage.svg 60=red 80=orange 100=green
git config user.name "Badge Bot"
git config user.email "<>"
git add $BADGES_DIR/*.svg
git commit -m "Update badges" || true
git push || true