Add playwright to transition #977
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: Create runtime directory | |
# run: mkdir -p examples/runtime | |
# - name: Download imports | |
# run: | | |
# curl -L -o examples/runtime/imports.zip https://github.com/chairemobilite/transition/releases/download/osrm/imports.zip | |
# unzip examples/runtime/imports.zip -d examples/runtime | |
# - name: Download OSRM data | |
# run: | | |
# curl -L -o examples/runtime/osrm.zip https://github.com/chairemobilite/transition/releases/download/osrm/osrm.zip | |
# unzip examples/runtime/osrm.zip -d examples/runtime | |
- name: Start application | |
run: yarn start & | |
env: | |
NODE_ENV: production | |
- name: Run UI 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 |