Overhaul PyDesigner Code 2 #48
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: | |
pull_request: | |
push: | |
branches: master | |
tags: | |
- "**" | |
permissions: | |
checks: write | |
pull-requests: write | |
jobs: | |
pre-commit: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
id: checkout | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.GH_BRIDGE_PAT }} | |
- name: Set up Python | |
id: setup-python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
architecture: 'x64' | |
- name: Run Pre-Commit | |
id: pre-commit | |
uses: pre-commit/action@v3.0.0 | |
continue-on-error: true | |
with: | |
extra_args: --all-files | |
- name: Auto-commit changed files | |
id: git-auto-commit | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: "Pre-commit autofix" | |
- name: Return pre-commit response | |
if: steps.pre-commit.outcome == 'failure' | |
run: exit 1 | |
pytest: | |
needs: pre-commit | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
id: checkout | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GH_BRIDGE_PAT }} | |
- name: Login to Docker Hub | |
id: login | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Build Docker image | |
run: docker build -t pydesigner-test -f tests/Dockerfile . | |
- name: Run tests in Docker container | |
run: docker run --name pydesigner-test-container pydesigner-test | |
- name: Copy test results | |
run: docker cp pydesigner-test-container:/test_results/ ./test_results | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-results | |
path: ./test_results/results.xml | |
- name: Upload coverage report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-report | |
path: ./test_results/coverage.xml | |
- name: Code coverage summary report | |
uses: irongut/CodeCoverageSummary@v1.3.0 | |
with: | |
filename: ./test_results/coverage.xml | |
badge: true | |
fail_below_min: true | |
format: markdown | |
hide_branch_rate: false | |
hide_complexity: true | |
indicators: true | |
output: both | |
thresholds: '10 50' | |
- name: Publish Coverage PR Comment | |
uses: marocchino/sticky-pull-request-comment@v2 | |
if: github.event_name == 'pull_request' | |
with: | |
recreate: true | |
path: code-coverage-results.md | |
- name: Output Coverage to Job Summary | |
run: cat code-coverage-results.md >> $GITHUB_STEP_SUMMARY | |
- name: Publish Test Results | |
uses: EnricoMi/publish-unit-test-result-action@v2 | |
if: always() | |
with: | |
files: | | |
test_results/results.xml | |
- name: Clean up | |
run: | | |
docker container rm pydesigner-test-container | |
docker image rm pydesigner-test |