Cypress Tests #9057
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: Cypress Tests | |
on: | |
schedule: | |
- cron: "30 22 * * *" | |
pull_request: | |
branches: | |
- develop | |
- staging | |
workflow_dispatch: | |
jobs: | |
cypress-run: | |
permissions: write-all | |
if: github.repository == 'coronasafe/care_fe' | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
containers: [1, 2, 3, 4, 5, 6, 7, 8] | |
steps: | |
- name: Checkout 📥 | |
uses: actions/checkout@v3 | |
- name: Checkout care 📥 | |
uses: actions/checkout@v3 | |
with: | |
repository: coronasafe/care | |
path: care | |
- name: Start care docker containers 🐳 | |
run: | | |
cd care | |
echo DISABLE_RATELIMIT=True >> docker/.prebuilt.env | |
make docker_config_file=docker-compose.pre-built.yaml up | |
make docker_config_file=docker-compose.pre-built.yaml load-dummy-data | |
cd .. | |
- name: Wait for care to be up ♻ | |
uses: nick-fields/retry@v2 | |
with: | |
timeout_minutes: 1 | |
max_attempts: 5 | |
command: curl -o /dev/null -s -w "%{http_code}\n" http://localhost:9000 | |
on_retry_command: sleep 5 | |
- name: Determine PR Origin | |
id: pr_origin | |
run: echo "::set-output name=is_forked::$( echo ${{ github.event.pull_request.head.repo.fork }})" | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "20" | |
- name: Install dependencies 📦 | |
run: npm install | |
- name: Build & Compile rescript files ⚙️ | |
run: npm run build | |
- name: Install Specific Chrome Version | |
run: | | |
sudo apt-get install -y wget | |
sudo wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb | |
sudo apt-get install ./google-chrome-stable_current_amd64.deb | |
- name: Cypress run for Non-Forked PRs 🥬 | |
if: steps.pr_origin.outputs.is_forked == 'false' | |
uses: cypress-io/github-action@v5 | |
with: | |
env: SKIP_PREFLIGHT_CHECK=true | |
install: false | |
start: "npx vite preview --host" | |
wait-on: "http://localhost:4000" | |
wait-on-timeout: 300 | |
browser: chrome | |
record: true | |
parallel: true | |
group: "UI-Chrome" | |
env: | |
CARE_API: http://localhost:9000 | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NODE_OPTIONS: --max_old_space_size=4096 | |
COMMIT_INFO_MESSAGE: ${{github.event.pull_request.title}} | |
COMMIT_INFO_SHA: ${{github.event.pull_request.head.sha}} | |
- name: Cypress run for Forked PRs 🥬 | |
if: steps.pr_origin.outputs.is_forked == 'true' | |
uses: cypress-io/github-action@v5 | |
with: | |
env: SKIP_PREFLIGHT_CHECK=true | |
install: false | |
start: "npx vite preview --host" | |
wait-on: "http://localhost:4000" | |
wait-on-timeout: 300 | |
browser: chrome | |
record: true | |
parallel: true | |
group: "UI-Chrome" | |
env: | |
CYPRESS_SPLIT_TESTS: "true" | |
CARE_API: http://localhost:9000 | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NODE_OPTIONS: --max_old_space_size=4096 | |
COMMIT_INFO_MESSAGE: ${{github.event.pull_request.title}} | |
COMMIT_INFO_SHA: ${{github.event.pull_request.head.sha}} | |
SPLIT: ${{ strategy.job-total }} | |
SPLIT_INDEX: ${{ strategy.job-index }} | |
- name: Upload cypress screenshots on failure 📸 | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: cypress-screenshots | |
path: cypress/screenshots | |
- name: Upload cypress videos 📹 | |
uses: actions/upload-artifact@v3 | |
if: steps.pr_origin.outputs.is_forked == 'true' | |
with: | |
name: cypress-videos | |
path: cypress/videos |