This repository has been archived by the owner on Apr 18, 2024. It is now read-only.
.github/workflows/e2e-test-staging.yml #384
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: End to End Tests on PR Approval - Staging | |
on: | |
pull_request_review: | |
types: [submitted] | |
pull_request: | |
types: [labeled] | |
jobs: | |
install: | |
if: (github.event_name == 'pull_request_review' && github.event.review.state == 'approved') || (github.event_name == 'pull_request' && github.event.action == 'labeled' && github.event.label.name == 'run e2e tests') | |
runs-on: macos-latest | |
environment: End to End Test - Staging | |
steps: | |
- id: skip_check | |
uses: fkirc/skip-duplicate-actions@v5 | |
with: | |
concurrent_skipping: 'always' | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup Node | |
uses: actions/setup-node@v1 | |
with: | |
node-version: 16 | |
- uses: dorny/paths-filter@v2 | |
id: filter | |
with: | |
filters: | | |
src: | |
- 'src/**' | |
- 'cypress/**' | |
- name: Prepare for end to end tests | |
if: steps.filter.outputs.src == 'true' | |
run: npm run setup_e2e_test | |
- name: Cache Dependencies | |
uses: actions/cache@v3 | |
id: cache | |
with: | |
path: | | |
~/.cache/Cypress | |
node_modules | |
key: my-cache-${{ runner.os }}-${{ hashFiles('package-lock.json') }} | |
- name: Cypress install | |
if: steps.filter.outputs.src == 'true' && steps.cache.outputs.cache-hit != 'true' | |
uses: cypress-io/github-action@v4 | |
with: | |
install: true | |
runTests: false | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
COMMIT_INFO_MESSAGE: ${{github.event.pull_request.title}} | |
COMMIT_INFO_SHA: ${{github.event.pull_request.head.sha}} | |
APP_URL: ${{ secrets.APP_URL }} | |
API_URL: ${{ secrets.API_URL }} | |
E2E_TESTS_ENV: ${{ secrets.E2E_TESTS_ENV }} | |
E2E_TESTS_WORKSPACE_ID_1: ${{ secrets.E2E_TESTS_WORKSPACE_ID_1 }} | |
E2E_TESTS_WORKSPACE_ID_2: ${{ secrets.E2E_TESTS_WORKSPACE_ID_2 }} | |
E2E_TESTS_CLIENT_ID: ${{ secrets.E2E_TESTS_CLIENT_ID }} | |
E2E_TESTS_REFRESH_TOKEN_1: ${{ secrets.E2E_TESTS_REFRESH_TOKEN_1 }} | |
E2E_TESTS_ORG_ID_1: ${{ secrets.E2E_TESTS_ORG_ID_1 }} | |
E2E_TESTS_REFRESH_TOKEN_2: ${{ secrets.E2E_TESTS_REFRESH_TOKEN_2 }} | |
E2E_TESTS_ORG_ID_2: ${{ secrets.E2E_TESTS_ORG_ID_2 }} | |
end-to-end-test: | |
runs-on: macos-latest | |
environment: End to End Test - Staging | |
needs: install | |
strategy: | |
fail-fast: false | |
matrix: | |
containers: [1, 2, 3, 4, 5] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup Node | |
uses: actions/setup-node@v1 | |
with: | |
node-version: 14 | |
- name: Prepare for end to end tests | |
run: npm run setup_env | |
- name: Cache Dependencies | |
uses: actions/cache@v3 | |
id: cache | |
with: | |
path: | | |
~/.cache/Cypress | |
node_modules | |
key: my-cache-${{ runner.os }}-${{ hashFiles('package-lock.json') }} | |
- name: Cypress run | |
uses: cypress-io/github-action@v4 | |
with: | |
install: false | |
record: true | |
browser: chrome | |
parallel: true | |
tag: ${{ secrets.E2E_TESTS_ENV }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
COMMIT_INFO_MESSAGE: ${{github.event.pull_request.title}} | |
COMMIT_INFO_SHA: ${{github.event.pull_request.head.sha}} | |
APP_URL: ${{ secrets.APP_URL }} | |
API_URL: ${{ secrets.API_URL }} | |
E2E_TESTS_ENV: ${{ secrets.E2E_TESTS_ENV }} | |
E2E_TESTS_WORKSPACE_ID_1: ${{ secrets.E2E_TESTS_WORKSPACE_ID_1 }} | |
E2E_TESTS_WORKSPACE_ID_2: ${{ secrets.E2E_TESTS_WORKSPACE_ID_2 }} | |
E2E_TESTS_CLIENT_ID: ${{ secrets.E2E_TESTS_CLIENT_ID }} | |
E2E_TESTS_REFRESH_TOKEN_1: ${{ secrets.E2E_TESTS_REFRESH_TOKEN_1 }} | |
E2E_TESTS_ORG_ID_1: ${{ secrets.E2E_TESTS_ORG_ID_1 }} | |
E2E_TESTS_REFRESH_TOKEN_2: ${{ secrets.E2E_TESTS_REFRESH_TOKEN_2 }} | |
E2E_TESTS_ORG_ID_2: ${{ secrets.E2E_TESTS_ORG_ID_2 }} |