Get pytest report info. #23
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: Scheduled Tests | |
on: | |
push: {} | |
pull_request: | |
branches: | |
- add-scheduled-tests | |
# on: workflow_dispatch | |
jobs: | |
run_app_tests: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
# python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11" ] | |
python-version: [ "3.11" ] | |
steps: | |
- name: Get Metadata Version | |
id: metadataVersion | |
uses: satak/webrequest-action@master | |
with: | |
url: https://mygeneset.info/metadata | |
method: GET | |
- name: Show Response | |
run: | | |
echo "${{fromJson(steps.metadataVersion.outputs.output).data.build_date}}" | |
- name: Checkout source | |
uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upgrade pip | |
run: pip install --upgrade pip | |
- name: Install dependencies | |
run: pip install -r requirements_web.txt | |
- name: Install PyTest | |
run: pip install pytest | |
# - name: Run Pytest and Capture Report | |
# id: pytest | |
# run: | | |
# pytest src/tests/test_remote.py --junitxml=pytest_report.xml | |
# - name: Read Pytest Report File Content | |
# id: read-pytest-report | |
# run: | | |
# # Use the cat command to read the file and store its content in a variable | |
# pytest_report_content=$(cat pytest_report.xml) | |
# echo "::set-output name=content::$pytest_report_content" | |
# - name: Send Report to Slack | |
# run: | | |
# curl -X POST -H 'Content-type: application/json' --data '{ | |
# "text": "Pytest Report:\n```'${{ steps.read-pytest-report.outputs.pytest_report_content }}'```" | |
# }' $SLACK_WEBHOOK_URL | |
# env: | |
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
- name: Run pytest and generate report | |
run: pytest src/tests/test_remote.py --junitxml=pytest_report.xml | |
- name: Upload report to GitHub Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: pytest-report | |
path: pytest-report.xml | |
- name: Extract test counts | |
id: pytest | |
run: | | |
# Parse pytest report and extract desired fields | |
errors=$(grep -o 'errors="[^"]*"' pytest_report.xml | cut -d'"' -f2) | |
failures=$(grep -o 'failures="[^"]*"' pytest_report.xml | cut -d'"' -f2) | |
skipped=$(grep -o 'skipped="[^"]*"' pytest_report.xml | cut -d'"' -f2) | |
tests=$(grep -o 'tests="[^"]*"' pytest_report.xml | cut -d'"' -f2) | |
time=$(grep -o 'time="[^"]*"' pytest_report.xml | cut -d'"' -f2) | |
echo "Errors: $errors" | |
echo "Failures: $failures" | |
echo "Skipped: $skipped" | |
echo "Tests: $tests" | |
echo "Time: $time" | |
working-directory: ${{ github.workspace }} | |
continue-on-error: true # Continue even if the pytest report does not exist | |
# - name: Send report to Slack | |
# uses: 8398a7/action-slack@v3 | |
# with: | |
# status: ${{ job.status }} | |
# author_name: GitHub Actions | |
# title: Pytest Report | |
# fields: name,status | |
# env: | |
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
- name: Send report to Slack | |
uses: 8398a7/action-slack@v3 | |
with: | |
status: ${{ job.status }} | |
author_name: Mygeneset Scheduled Pytest | |
# title: Pytest Report | |
message: | | |
Pytest Report: | |
- Errors: ${{ steps.pytest.outputs.errors }} | |
- Failures: ${{ steps.pytest.outputs.failures }} | |
- Skipped: ${{ steps.pytest.outputs.skipped }} | |
- Tests: ${{ steps.pytest.outputs.tests }} | |
- Time: ${{ steps.pytest.outputs.time }} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
# - name: Setup tmate debug session on failure | |
# if: ${{ failure() }} | |
# uses: mxschmitt/action-tmate@v3 |