chore(apps/office-addin): add missing type validation script to offic… #6433
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: Klicker automated testing with cypress | |
on: | |
push: | |
branches: ['v3', 'v3*'] | |
# paths: | |
# - apps/** | |
# - packages/** | |
pull_request: | |
branches: ['v3', 'v3*'] | |
types: [opened, synchronize, reopened] | |
paths: | |
- apps/** | |
- packages/** | |
- cypress/** | |
env: | |
REGISTRY: ghcr.io | |
jobs: | |
cypress-run: | |
# runs-on: self-hosted | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres:15 | |
env: | |
POSTGRES_USER: klicker | |
POSTGRES_PASSWORD: klicker | |
POSTGRES_DB: klicker-prod | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5432:5432 | |
redis_cache: | |
image: redis:7 | |
options: >- | |
--health-cmd "redis-cli ping" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 6380:6379 | |
redis_exec: | |
options: >- | |
--health-cmd "redis-cli ping" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
image: redis:7 | |
ports: | |
- 6379:6379 | |
# strategy: | |
# fail-fast: false # https://github.com/cypress-io/github-action/issues/48 | |
# matrix: | |
# containers: [1, 2] # Run parallel instances | |
steps: | |
- run: echo "The job was automatically triggered by a ${{ github.event_name }} event." | |
- name: Define node version | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: Check out repository code | |
uses: actions/checkout@v3 | |
- uses: pnpm/action-setup@v2 | |
with: | |
version: 9.15.4 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v3 | |
name: Setup pnpm cache | |
with: | |
path: | | |
${{ env.STORE_PATH }} | |
~/.cache/Cypress | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- uses: actions/cache@v3 | |
name: Setup turbo cache | |
with: | |
path: | | |
.turbo | |
key: ${{ runner.os }}-turbo-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-turbo- | |
- name: Install bun | |
run: pnpm add -g [email protected] | |
- name: Install dependencies | |
run: pnpm install | |
# - name: Install azure-functions-core-tools | |
# run: npm i -g azure-functions-core-tools@4 --unsafe-perm true | |
- name: Prepare .env and local.settings.json files | |
run: | | |
mv apps/backend-docker/.env.cypress apps/backend-docker/.env | |
echo "$FUNC_RESPONSES_SETTINGS" > apps/func-incoming-responses/local.settings.json | |
echo "$FUNC_RESPONSE_PROCESSOR_SETTINGS" > apps/func-response-processor/local.settings.json | |
env: | |
FUNC_RESPONSES_SETTINGS: ${{ secrets.FUNC_RESPONSES_SETTINGS }} | |
FUNC_RESPONSE_PROCESSOR_SETTINGS: ${{ secrets.FUNC_RESPONSE_PROCESSOR_SETTINGS }} | |
- name: Build all packages and apps | |
run: pnpm run --filter @klicker-uzh/prisma build:test && pnpm run build:test | |
- name: Apply migrations and seed the database | |
run: | | |
cd packages/prisma | |
pnpm run prisma:reset:raw -f | |
pnpm run seed:test | |
env: | |
DATABASE_URL: postgres://klicker:klicker@localhost:5432/klicker-prod | |
- name: Start services and wait for readiness | |
run: | | |
chmod +x .github/scripts/wait-for-services.sh | |
.github/scripts/wait-for-services.sh | |
env: | |
APP_SECRET: abcd | |
DATABASE_URL: postgres://klicker:klicker@localhost:5432/klicker-prod | |
NODE_ENV: production | |
SERVICE_ENDPOINTS: 'http://127.0.0.1:3000/healthz http://127.0.0.1:3001 http://127.0.0.1:3002 http://127.0.0.1:3003 http://127.0.0.1:3010' | |
TIMEOUT_SECONDS: '300' | |
CHECK_INTERVAL: '5' | |
- name: Upload service logs | |
if: always() # This ensures logs are uploaded even if the previous step fails | |
uses: actions/upload-artifact@v4 | |
with: | |
name: service-logs | |
path: service.log | |
if-no-files-found: warn | |
retention-days: 7 | |
- name: Cypress run | |
uses: cypress-io/github-action@v6 | |
timeout-minutes: 60 | |
with: | |
install: false | |
wait-on: 'http://127.0.0.1:3000/healthz, http://127.0.0.1:3001, http://127.0.0.1:3002, http://127.0.0.1:3003, http://127.0.0.1:3010' | |
wait-on-timeout: 300 | |
record: true | |
browser: electron | |
working-directory: cypress | |
# parallel: true | |
env: | |
APP_SECRET: abcd | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
DATABASE_URL: postgres://klicker:klicker@localhost:5432/klicker-prod | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NODE_ENV: production | |
# - name: Archive code coverage results | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: code-coverage | |
# path: cypress/coverage | |
# - name: Coveralls | |
# uses: coverallsapp/github-action@v2 |