Skip to content

Fix up CI for existing app #337

Fix up CI for existing app

Fix up CI for existing app #337

Workflow file for this run

name: build
on: push
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hoverkraft-tech/compose-action@v2.0.1
with:
compose-file: "docker-compose.ci.yml"
- name: Check client types
run: docker-compose -f docker-compose.ci.yml exec -T client yarn run typecheck
- name: Lint client Typescript files
run: docker-compose -f docker-compose.ci.yml exec -T client yarn run lint
- name: Check server types
run: docker-compose -f docker-compose.ci.yml exec -T server yarn run typecheck
- name: Lint server Typescript files
run: docker-compose -f docker-compose.ci.yml exec -T server yarn run lint
- name: Run server unit tests
run: docker-compose -f docker-compose.ci.yml exec -T server yarn run test:unit
- name: Run client unit tests
run: docker-compose -f docker-compose.ci.yml exec -T client yarn run test --watchAll=false
- name: Run server integration tests
run: ./scripts/integration_tests.sh
- name: Run browser end to end tests for client app
id: e2e
run: ./scripts/browser_tests.sh
- uses: actions/upload-artifact@v4
if: ${{ failure() && steps.e2e.outcome == 'failure' }}
with:
name: e2e-screenshots
path: browser_test/cypress/screenshots/
next:
runs-on: ubuntu-latest
env:
DB_NAME: test
DATABASE_URL: postgresql://root@localhost:26257/test?sslmode=disable
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22"
- name: Install dependencies
run: npm install
- name: Linting
if: ${{ always() }}
run: npm run lint
- name: Check types
if: ${{ always() }}
run: npm run typecheck
- uses: hoverkraft-tech/compose-action@v2.0.1
with:
services: db
- name: Run e2e tests
id: e2e
run: npm run test:ci
- uses: actions/upload-artifact@v4
if: ${{ failure() && steps.e2e.outcome == 'failure' }}
with:
name: e2e-screenshots
path: cypress/screenshots/