Skip to content

Cypress Daily

Cypress Daily #60

Workflow file for this run

name: Cypress Daily
on:
schedule:
- cron: "0 16 * * *" # Runs daily at 16:00 UTC (8 AM PST)
workflow_dispatch: # Allows manual triggering of the workflow
jobs:
cypress:
runs-on: ubuntu-latest
services:
db:
image: postgres:14.2
env:
POSTGRES_DB: lcfs
POSTGRES_USER: lcfs
POSTGRES_PASSWORD: development_only
ports:
- 5432:5432
redis:
image: bitnami/redis:6.2.5
env:
REDIS_PASSWORD: development_only
ports:
- 6379:6379
rabbitmq:
image: rabbitmq:3-management
env:
RABBITMQ_DEFAULT_USER: lcfs
RABBITMQ_DEFAULT_PASS: development_only
RABBITMQ_DEFAULT_VHOST: lcfs
ports:
- 15672:15672
- 5672:5672
steps:
- uses: actions/checkout@v2
- name: Build Backend Service
run: docker build -t backend-service -f ./backend/Dockerfile ./backend
- name: Run Backend Service
run: docker run -d --name backend --network=host -e LCFS_DB_HOST=localhost -e LCFS_REDIS_HOST=localhost -e LCFS_RABBITMQ_HOST=localhost -e LCFS_CHES_ENABLED=False backend-service
- name: Wait for DB to be Ready
run: sleep 20
- name: Run Alembic Migrations
run: docker exec backend poetry run alembic upgrade head
- name: Data Seeding
run: docker exec backend poetry run python /app/lcfs/db/seeders/seed_database.py
- name: Build Frontend Service
run: docker build -t frontend-service -f ./frontend/Dockerfile.dev ./frontend
- name: Run Frontend Service
run: docker run -d --name frontend --network=host frontend-service
- name: Cypress run
uses: cypress-io/github-action@v6
with:
browser: chrome
wait-on: "http://localhost:3000"
wait-on-timeout: 60
record: false
config-file: cypress.config.js
working-directory: frontend
env:
CYPRESS_IDIR_TEST_USER: ${{ secrets.ADMIN_IDIR_USERNAME }}
CYPRESS_IDIR_TEST_PASS: ${{ secrets.ADMIN_IDIR_PASSWORD }}
CYPRESS_BCEID_TEST_USER: ${{ secrets.BCEID_TEST_USER }}
CYPRESS_BCEID_TEST_PASS: ${{ secrets.BCEID_TEST_PASS }}
CYPRESS_ADMIN_IDIR_USERNAME: ${{ secrets.ADMIN_IDIR_USERNAME }}
CYPRESS_ADMIN_IDIR_PASSWORD: ${{ secrets.ADMIN_IDIR_PASSWORD }}
CYPRESS_ADMIN_IDIR_EMAIL: ${{ secrets.ADMIN_IDIR_EMAIL }}
CYPRESS_ORG1_BCEID_USERNAME: ${{ secrets.ORG1_BCEID_USERNAME }}
CYPRESS_ORG1_BCEID_PASSWORD: ${{ secrets.ORG1_BCEID_PASSWORD }}
CYPRESS_ORG2_BCEID_USERNAME: ${{ secrets.ORG2_BCEID_USERNAME }}
CYPRESS_ORG2_BCEID_PASSWORD: ${{ secrets.ORG2_BCEID_PASSWORD }}
# Print backend logs if something goes wrong
- name: Print backend logs
if: failure()
run: docker logs backend
# Print frontend logs if something goes wrong
- name: Print frontend logs
if: failure()
run: docker logs frontend
- name: Cleanup
if: always()
run: |
docker stop backend frontend
docker rm backend frontend