Cypress Daily #67
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 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 |