feat(web): introduce score tracking #564
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
name: CI | |
on: | |
workflow_dispatch: {} | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
lint-and-format: | |
name: Lint and format code | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check code out | |
uses: actions/checkout@v3 | |
- name: Intall Pnpm | |
uses: pnpm/action-setup@v2 | |
- name: Set Node.js up | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.nvmrc' | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm install --ignore-scripts | |
- name: Run linter | |
run: pnpm lint | |
- name: Run type checker | |
run: pnpm typecheck | |
cli_tests: | |
name: CLI tests | |
runs-on: ubuntu-latest | |
needs: [lint-and-format] | |
steps: | |
- name: Check code out | |
uses: actions/checkout@v3 | |
- name: Intall Pnpm | |
uses: pnpm/action-setup@v2 | |
- name: Set Node.js up | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.nvmrc' | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm install --ignore-scripts | |
- name: Run CLI test | |
run: pnpm test:cli | |
env: | |
TZ: CET | |
- name: Send coverage to Codacy | |
if: always() | |
continue-on-error: true | |
uses: codacy/codacy-coverage-reporter-action@master | |
with: | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
coverage-reports: apps/cli/coverage/clover.xml | |
server_tests: | |
name: Server tests | |
runs-on: ubuntu-latest | |
needs: [lint-and-format] | |
steps: | |
- name: Check code out | |
uses: actions/checkout@v3 | |
- name: Intall Pnpm | |
uses: pnpm/action-setup@v2 | |
- name: Set Node.js up | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.nvmrc' | |
cache: 'pnpm' | |
- name: Start Redis | |
uses: supercharge/redis-github-action@1.4.0 | |
with: | |
redis-version: 6 | |
- name: Install dependencies | |
run: pnpm install --ignore-scripts | |
- name: Run migrations | |
run: pnpm migrate | |
- name: Run server test | |
run: pnpm test:server | |
env: | |
TZ: CET | |
- name: Send coverage to Codacy | |
if: always() | |
continue-on-error: true | |
uses: codacy/codacy-coverage-reporter-action@master | |
with: | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
coverage-reports: apps/server/coverage/clover.xml | |
web_tests: | |
name: Web unit tests | |
runs-on: ubuntu-latest | |
needs: [lint-and-format] | |
steps: | |
- name: Check code out | |
uses: actions/checkout@v3 | |
- name: Intall Pnpm | |
uses: pnpm/action-setup@v2 | |
- name: Set Node.js up | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.nvmrc' | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm install --ignore-scripts | |
- name: Run UI unit tests | |
run: pnpm test:web | |
env: | |
TZ: CET | |
WEB_USE_GITHUB_PROVIDER: true | |
WEB_USE_GOOGLE_PROVIDER: true | |
WEB_GRAPHQL_URL: http://localhost:3001/graphql | |
WEB_GAME_ASSETS_URL: http://localhost:3001/games | |
WEB_AUTH_URL: http://localhost:3001/auth | |
- name: Send coverage to Codacy | |
if: always() | |
continue-on-error: true | |
uses: codacy/codacy-coverage-reporter-action@master | |
with: | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
coverage-reports: apps/web/coverage/clover.xml | |
integration_tests: | |
name: Web integration tests | |
runs-on: ubuntu-latest | |
needs: [lint-and-format] | |
steps: | |
- name: Check code out | |
uses: actions/checkout@v3 | |
- name: Intall Pnpm | |
uses: pnpm/action-setup@v2 | |
- name: Set Node.js up | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.nvmrc' | |
cache: 'pnpm' | |
- name: Start Redis | |
uses: supercharge/redis-github-action@1.4.0 | |
with: | |
redis-version: 6 | |
- name: Install dependencies | |
run: pnpm install --ignore-scripts | |
- name: Run migrations | |
run: pnpm migrate | |
- name: Install Playwright | |
run: pnpm playwright install chromium | |
- name: Run UI integration tests | |
run: pnpm test:integration | |
env: | |
TZ: CET | |
WEB_GAME_ASSETS_URL: http://localhost:3001/games | |
WEB_GRAPHQL_URL: http://localhost:3001/graphql | |
WEB_AUTH_URL: http://localhost:3001/auth | |
WEB_USE_GITHUB_PROVIDER: true | |
WEB_USE_GOOGLE_PROVIDER: true | |
- name: Send coverage to Codacy | |
if: always() | |
continue-on-error: true | |
uses: codacy/codacy-coverage-reporter-action@master | |
with: | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
coverage-reports: apps/web/coverage/clover-integration.xml | |
games_tests: | |
name: Games tests | |
runs-on: ubuntu-latest | |
needs: [lint-and-format] | |
steps: | |
- name: Check code out | |
uses: actions/checkout@v3 | |
- name: Intall Pnpm | |
uses: pnpm/action-setup@v2 | |
- name: Set Node.js up | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.nvmrc' | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm install --ignore-scripts | |
- name: Run Game test | |
run: pnpm test:games | |
env: | |
TZ: CET | |
- name: Send coverage to Codacy | |
if: always() | |
continue-on-error: true | |
uses: codacy/codacy-coverage-reporter-action@master | |
with: | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
coverage-reports: apps/games/coverage/clover.xml |