name: Automatisch UI Tests on: push: branches: - main pull_request: workflow_dispatch: env: ENCRYPTION_KEY: sample_encryption_key WEBHOOK_SECRET_KEY: sample_webhook_secret_key APP_SECRET_KEY: sample_app_secret_key POSTGRES_HOST: localhost POSTGRES_DATABASE: automatisch POSTGRES_PORT: 5432 POSTGRES_USERNAME: automatisch_user POSTGRES_PASSWORD: automatisch_password REDIS_HOST: localhost APP_ENV: production LICENSE_KEY: ${{ secrets.E2E_LICENSE_KEY }} jobs: test: timeout-minutes: 60 runs-on: ubuntu-latest services: postgres: image: postgres:14.5-alpine env: POSTGRES_DB: automatisch POSTGRES_USER: automatisch_user POSTGRES_PASSWORD: automatisch_password options: >- --health-cmd "pg_isready -U automatisch_user -d automatisch" --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 5432:5432 redis: image: redis:7.0.4-alpine options: >- --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 6379:6379 steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 18 - name: Install dependencies run: yarn && yarn lerna bootstrap - name: Install Playwright Browsers run: yarn playwright install --with-deps - name: Build Automatisch run: yarn lerna run --scope=@*/{web,backend,cli} build env: # Keep this until we clean up warnings in build processes CI: false - name: Migrate database working-directory: ./packages/backend run: yarn db:migrate --migrations-directory ./dist/src/db/migrations - name: Seed user working-directory: ./packages/backend run: yarn db:seed:user & - name: Run Automatisch run: yarn start & working-directory: ./packages/backend - name: Run Automatisch worker run: node dist/src/worker.js & working-directory: ./packages/backend - name: Run Playwright tests working-directory: ./packages/e2e-tests env: LOGIN_EMAIL: user@automatisch.io LOGIN_PASSWORD: sample BASE_URL: http://localhost:3000 run: yarn test - uses: actions/upload-artifact@v3 if: always() with: name: playwright-report path: ./packages/e2e-tests/test-results/**/* retention-days: 30