Add playwright to transition #965
Workflow file for this run
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
# Workflow to verify the code style of the commit, that it builds correctly | |
# and make sure unit tests run too with all supported node versions | |
name: CI | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
jobs: | |
build-and-test: | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgis/postgis | |
ports: | |
- 5432:5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
env: | |
POSTGRES_USER: testuser | |
POSTGRES_PASSWORD: testpassword | |
POSTGRES_DB: testdb | |
strategy: | |
matrix: | |
node-version: [18.x, 20.x] | |
env: | |
PROJECT_CONFIG: ${{ github.workspace }}/examples/config.js | |
PG_CONNECTION_STRING_PREFIX: postgres://testuser:testpassword@localhost:5432/ | |
PG_DATABASE_PRODUCTION: testdb | |
PG_DATABASE_DEVELOPMENT: testdb | |
CI: true ## This is to make sure that the tests run in CI mode | |
PLAYWRIGHT_TEST_USER: testUser | |
PLAYWRIGHT_TEST_EMAIL: [email protected] | |
PLAYWRIGHT_TEST_PASSWORD: testPassword | |
steps: | |
- uses: actions/checkout@v4 | |
- name: copy env file | |
run: cp .env.example .env | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Install | |
run: yarn | |
- name: Compile | |
run: yarn compile | |
- name: Build Client bundle | |
run: yarn build:prod | |
- name: Unit Test | |
run: yarn test | |
# Following configure the automated UI tests | |
- name: Create DB | |
run: yarn setup && yarn migrate | |
env: | |
NODE_ENV: production | |
- name: Get Playwright config | |
run: cp packages/chaire-lib-frontend/playwright-example.config.ts packages/chaire-lib-frontend/playwright.config.ts | |
- name: Create test user | |
run: yarn create-user --username $PLAYWRIGHT_TEST_USER --email $PLAYWRIGHT_TEST_EMAIL --password $PLAYWRIGHT_TEST_PASSWORD --admin | |
- name: Start application | |
run: yarn start & | |
env: | |
NODE_ENV: production | |
- name: Run tests | |
run: yarn test:ui | |
- name: Archive UI Test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: playwright-results-${{matrix.node-version}} # This is to make sure that the results are stored in a unique name | |
path: packages/chaire-lib-frontend/test-results | |
retention-days: 2 | |
# End of automated UI tests | |
code-lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install | |
run: yarn install | |
- name: Compile | |
run: yarn compile | |
- name: Lint | |
run: yarn lint | |
cargo-test: | |
name: Json2capnp | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
- run: cargo build | |
working-directory: ./services/json2capnp | |
- run: cargo test | |
working-directory: ./services/json2capnp |