From 3f94bde67f1827a28fccaa3ac6fa87d279a18f16 Mon Sep 17 00:00:00 2001 From: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> Date: Mon, 16 Oct 2023 12:02:39 +0200 Subject: [PATCH] Refs #34043 -- Added GitHub action to capture screenshots in Selenium tests. --- .github/workflows/screenshots.yml | 57 +++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/screenshots.yml diff --git a/.github/workflows/screenshots.yml b/.github/workflows/screenshots.yml new file mode 100644 index 000000000000..1df03d5e9ca8 --- /dev/null +++ b/.github/workflows/screenshots.yml @@ -0,0 +1,57 @@ +name: Visual Regression Tests + +on: + pull_request: + types: [labeled, synchronize, opened, reopened] + paths-ignore: + - 'docs/**' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + pull-requests: write + +jobs: + selenium-screenshots: + if: contains(join(github.event.pull_request.labels.*.name, '|'), 'screenshots') + runs-on: ubuntu-latest + name: Screenshots + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + cache: 'pip' + cache-dependency-path: 'tests/requirements/py3.txt' + - name: Install and upgrade packaging tools + run: python -m pip install --upgrade pip setuptools wheel + - run: python -m pip install -r tests/requirements/py3.txt -e . + - name: Run Selenium tests with screenshots + working-directory: ./tests/ + run: | + python -Wall runtests.py --verbosity 2 --noinput --selenium=chrome --headless --screenshots --settings=test_sqlite --parallel 2 + echo "date=$(date)" >> $GITHUB_OUTPUT + echo "🖼️ **Screenshots created**" >> $GITHUB_STEP_SUMMARY + echo "Generated screenshots for ${{ github.event.pull_request.head.sha }} at $(date)" >> $GITHUB_STEP_SUMMARY + + - name: Upload screenshots + uses: actions/upload-artifact@v3 + with: + name: screenshots-${{ github.event.pull_request.head.sha }} + path: tests/screenshots/ + + - name: Create or update comment + uses: peter-evans/create-or-update-comment@v3 + with: + issue-number: ${{ github.event.pull_request.number }} + body: | + 🖼️ **Screenshots created** + + You can [download](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) the generated screenshots for ${{ github.event.pull_request.head.sha }} from the workflow artifacts. + + _Please note that artifacts are only available for download for ${{ github.retention_days }} days._