Skip to content

Add runtime tests

Add runtime tests #18

# .github/workflows/update_regression_tests.yml
name: Update Regression Baseline
on:
# issue_comment: # event runs on the default branch
# types: [created]
pull_request:
branches:
- main
jobs:
update_regression_tests:
name: update_regression_tests
runs-on: ubuntu-20.04
# if: github.event.issue.pull_request && contains(github.event.comment.body, '/update_baseline')
permissions:
contents: write
pull-requests: write
env:
username: ${{ github.event.pull_request.user.login }} # ${{ github.actor }}
steps:
# - name: Get PR branch
# uses: xt0rted/pull-request-comment-branch@v1
# id: comment-branch
- name: Checkout PR branch
uses: actions/checkout@v3
with:
# ref: ${{ steps.comment-branch.outputs.head_sha }} # using head_sha vs. head_ref makes this work for forks
lfs: true
fetch-depth: 0 # This ensures we can checkout main branch too
- uses: actions/setup-python@v4
with:
python-version: '3.10'
architecture: 'x64'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
- name: Update baseline
if: github.event.pull_request.base.ref == 'main'
run: |
git config --global user.name '$username'
git config --global user.email '[email protected]'
# Check if regression test results exist in main branch
if [ -f 'git cat-file -e main:tests/regression_test_baselines.json' ]; then # modify to use main:tests/regression_test_baselines.json when merged to main
mv tests/regression_test_baselines.json tests/regression_test_baselines.json.bak
else
echo "No pre-existing baselines found"
fi
NEW_BASELINE=1 pytest -m regression
- name: Add Baseline update report to PR comment
uses: actions/github-script@v7
if: github.event.pull_request.base.ref == 'main' # might need `always()` to work
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
const TestReport = fs.readFileSync('tests/regression_test_report.txt', 'utf8');
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `## New Baselines \n\`\`\`\n${TestReport}\n\`\`\``
});
- name: Commit and push
if: github.event.pull_request.base.ref == 'main'
run: |
git add -f tests/regression_test_baselines.json # since it's in .gitignore
git commit -m "Update regression test baselines"
# git push origin HEAD:${{ steps.comment-branch.outputs.head_sha }}
git push origin HEAD:${{ github.head_ref }}