|
name: Automatisch UI Tests |
|
on: |
|
push: |
|
branches: |
|
- main |
|
pull_request: |
|
paths: |
|
- 'packages/backend/**' |
|
- 'packages/e2e-tests/**' |
|
- 'packages/web/**' |
|
- '!packages/backend/src/apps/**' |
|
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: dummy_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 web |
|
working-directory: ./packages/web |
|
run: yarn build |
|
env: |
|
|
|
CI: false |
|
- name: Migrate database |
|
working-directory: ./packages/backend |
|
run: yarn db:migrate |
|
- name: Seed user |
|
working-directory: ./packages/backend |
|
run: yarn db:seed:user & |
|
- name: Install certutils |
|
run: sudo apt install -y libnss3-tools |
|
- name: Install mkcert |
|
run: | |
|
curl -JLO "https://dl.filippo.io/mkcert/latest?for=linux/amd64" \ |
|
&& chmod +x mkcert-v*-linux-amd64 \ |
|
&& sudo cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert |
|
- name: Install root certificate via mkcert |
|
run: mkcert -install |
|
- name: Create certificate |
|
run: mkcert automatisch.io "*.automatisch.io" localhost 127.0.0.1 ::1 |
|
working-directory: ./packages/e2e-tests |
|
- name: Set CAROOT environment variable |
|
run: echo "NODE_EXTRA_CA_CERTS=$(mkcert -CAROOT)/rootCA.pem" >> "$GITHUB_ENV" |
|
- name: Override license server with local server |
|
run: sudo echo "127.0.0.1 license.automatisch.io" | sudo tee -a /etc/hosts |
|
- name: Run local license server |
|
working-directory: ./packages/e2e-tests |
|
run: sudo yarn start-mock-license-server & |
|
- name: Run Automatisch |
|
run: yarn start & |
|
working-directory: ./packages/backend |
|
- name: Run Automatisch worker |
|
run: yarn start:worker & |
|
working-directory: ./packages/backend |
|
- name: Setup upterm session |
|
if: false |
|
uses: lhotari/action-upterm@v1 |
|
with: |
|
limit-access-to-actor: true |
|
limit-access-to-users: barinali |
|
- name: Run Playwright tests |
|
working-directory: ./packages/e2e-tests |
|
env: |
|
LOGIN_EMAIL: [email protected] |
|
LOGIN_PASSWORD: sample |
|
BASE_URL: http://localhost:3000 |
|
GITHUB_CLIENT_ID: 1c0417daf898adfbd99a |
|
GITHUB_CLIENT_SECRET: 3328fa814dd582ccd03dbe785cfd683fb8da92b3 |
|
run: yarn test |
|
- uses: actions/upload-artifact@v3 |
|
if: always() |
|
with: |
|
name: playwright-report |
|
path: packages/e2e-tests/test-results |
|
retention-days: 30 |
|
|