This repository has been archived by the owner on Sep 26, 2024. It is now read-only.
Run Smoke Tests #3299
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: Run Smoke Tests | |
permissions: | |
actions: write | |
checks: write | |
contents: write | |
deployments: write | |
pull-requests: write | |
statuses: write | |
on: | |
workflow_run: | |
workflows: ['Generate preview link'] | |
types: | |
- completed | |
jobs: | |
cypress-run: | |
runs-on: ubuntu-latest | |
if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
containers: [1, 2, 3, 4, 5] | |
steps: | |
- name: Download artifact | |
id: download-artifact | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow_conclusion: success | |
run_id: ${{ github.event.workflow_run.id }} | |
name: 'pr-${{ github.event.workflow_run.id }}' | |
path: pr | |
- name: Retrieve pull request | |
id: pr_information | |
run: | | |
echo "issue_number=$(cat ./pr/NR)" >> $GITHUB_OUTPUT | |
echo "preview_url=$(cat ./pr/PREVIEW_URL)" >> $GITHUB_OUTPUT | |
echo "branch_name=$(cat ./pr/BRANCHNAME)" >> $GITHUB_OUTPUT | |
echo "user_name=$(cat ./pr/USERNAME)" >> $GITHUB_OUTPUT | |
- name: Checkout external repository with Cypress tests | |
uses: actions/checkout@v4 | |
with: | |
repository: deriv-com/e2e-deriv-com | |
- name: Cypress run | |
# Uses the official Cypress GitHub action https://github.com/cypress-io/github-action | |
if: "!contains(steps.pr_information.outputs.branch_name, 'quill')" | |
uses: cypress-io/github-action@v6 | |
with: | |
# Records to Cypress Cloud | |
# https://docs.cypress.io/guides/cloud/projects#Set-up-a-project-to-record | |
record: true | |
parallel: true # Runs test in parallel using settings above | |
spec: cypress/e2e/smoke/*.js | |
group: 'Smoke Tests' | |
env: | |
# For recording and parallelization to work you must set your CYPRESS_RECORD_KEY | |
# in GitHub repo → Settings → Secrets → Actions | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
# Creating a token https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token | |
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
# Set Base Url from client_payload. | |
CYPRESS_BASE_URL: ${{ steps.pr_information.outputs.preview_url }} | |
# Send PR details to Cypress test run | |
COMMIT_INFO_MESSAGE: PR "${{ steps.pr_information.outputs.issue_number }}" Changed By "${{ steps.pr_information.outputs.user_name }}" in Branch "${{ steps.pr_information.outputs.branch_name }}" | |
- name: Set comments message | |
id: set_msg | |
if: always() && !contains(steps.pr_information.outputs.branch_name, 'quill') | |
run: | | |
# Using shell script to conditionally set the message | |
if [[ "${{ job.status }}" == "success" ]]; then | |
echo "msg=:rocket: Smoke test run (${{ matrix.containers }}) passed successfully!" >> $GITHUB_OUTPUT | |
else | |
echo "msg=:x: Smoke test run (${{ matrix.containers }}) failed. See logs for details: [Visit Action](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}})" >> $GITHUB_OUTPUT | |
fi | |
- name: Leave comment | |
if: always() && !contains(steps.pr_information.outputs.branch_name, 'quill') | |
uses: marocchino/sticky-pull-request-comment@v2 | |
with: | |
header: Smoke tests status update | |
number: ${{ steps.pr_information.outputs.issue_number }} | |
message: '${{ steps.set_msg.outputs.msg }}' | |
recreate: true |