Skip to content

Improve end to end test for meeting speaker and megaphone (#3959) #12812

Improve end to end test for meeting speaker and megaphone (#3959)

Improve end to end test for meeting speaker and megaphone (#3959) #12812

# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
name: "Continuous Integration"
on:
push:
branches:
- master
- develop
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
continuous-integration-play:
name: "Continuous Integration Play"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2.0.0"
- name: "Setup NodeJS"
uses: actions/setup-node@v3
with:
node-version: 18
cache: "npm"
- name: Install Protoc
uses: arduino/setup-protoc@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
version: '3.x'
- name: "Install dependencies"
run: npm ci --workspace=workadventure-play
- name: "Install messages dependencies"
run: npm ci
working-directory: "messages"
- name: "Build proto messages"
run: npm run ts-proto
working-directory: "messages"
- name: "Generate i18n files"
run: npm run typesafe-i18n
working-directory: "play"
- name: "Build"
run: npm run build
env:
PUSHER_URL: "//localhost:3000"
ADMIN_URL: "//localhost:80"
# upgrade RAM available to 6GB
NODE_OPTIONS: --max-old-space-size=12288
working-directory: "play"
- name: "Build iframe-api"
run: npm run build-iframe-api
working-directory: "play"
- name: "Typecheck"
run: npm run typecheck
working-directory: "play"
- name: "Svelte check"
run: npm run svelte-check
working-directory: "play"
- name: "Lint"
run: npm run lint
working-directory: "play"
- name: "Pretty"
run: npm run pretty-check
working-directory: "play"
- name: "Unit tests"
run: npm test
working-directory: "play"
continuous-integration-chat:
name: "Continuous Integration Chat"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2.0.0"
- name: "Setup NodeJS"
uses: actions/setup-node@v1
with:
node-version: '16.x'
cache: "npm"
- name: Install Protoc
uses: arduino/setup-protoc@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
version: '3.x'
# - name: "Copy libs dependencies"
# run: mkdir -p ./../front/libs/tailwind && cp -R ./* ./../front/libs
# working-directory: "libs"
- name: "Install dependencies"
run: npm ci --workspace=workadventurechat
- name: "Install messages dependencies"
run: npm ci
working-directory: "messages"
- name: "Build proto messages"
run: npm run ts-proto
working-directory: "messages"
- name: "Pretty"
run: npm run pretty-check
#run: npm run pretty && git diff --exit-code
working-directory: "chat"
- name: "Generate i18n files"
run: npm run typesafe-i18n
working-directory: "chat"
- name: "Build"
run: npm run build
env:
PUSHER_URL: "//localhost:8080"
ADMIN_URL: "//localhost:80"
# upgrade RAM available to 6GB
NODE_OPTIONS: --max-old-space-size=6144
working-directory: "chat"
- name: "Svelte check"
run: npm run svelte-check
working-directory: "chat"
- name: "Lint"
run: npm run lint
working-directory: "chat"
# TODO active
#- name: "Typecheck"
# run: npm run typecheck
# working-directory: "chat"
# TODO active
#- name: "Jasmine"
# run: npm test
# working-directory: "chat"
continuous-integration-back:
name: "Continuous Integration Back"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2.0.0"
- name: "Setup NodeJS"
uses: actions/setup-node@v3
with:
node-version: 16
cache: "npm"
- name: Install Protoc
uses: arduino/setup-protoc@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
version: '3.x'
- name: "Install dependencies"
run: npm ci --workspace=workadventureback
- name: "Install messages dependencies"
run: npm ci
working-directory: "messages"
- name: "Build proto messages"
run: npm run ts-proto
working-directory: "messages"
- name: "Typecheck"
run: npm run typecheck
working-directory: "back"
- name: "Lint"
run: npm run lint
working-directory: "back"
- name: "Unit tests"
run: npm test
working-directory: "back"
- name: "Prettier"
run: npm run pretty-check
working-directory: "back"
continuous-integration-uploader:
name: "Continuous Integration Uploader"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2.0.0"
- name: "Setup NodeJS"
uses: actions/setup-node@v3
with:
node-version: 16
cache: "npm"
- name: "Install dependencies"
run: npm ci --workspace=workadventureuploader
- name: "Lint"
run: npm run lint
working-directory: "uploader"
- name: "jest"
run: npm test
working-directory: "uploader"
continuous-integration-lib-map-editor:
name: "Continuous Integration Map Editor Library"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2.0.0"
- name: "Setup NodeJS"
uses: actions/setup-node@v3
with:
node-version: 18
cache: "npm"
- name: Install Protoc
uses: arduino/setup-protoc@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
version: '3.x'
- name: "Install dependencies"
run: npm ci --workspace=@workadventure/map-editor
- name: "Install messages dependencies"
run: npm ci
working-directory: "messages"
- name: "Build proto messages"
run: npm run ts-proto
working-directory: "messages"
- name: "Typecheck"
run: npm run typecheck
working-directory: "libs/map-editor"
- name: "Lint"
run: npm run lint
working-directory: "libs/map-editor"
- name: "Pretty"
run: npm run pretty-check
working-directory: "libs/map-editor"
- name: "jest"
run: npm test
working-directory: "libs/map-editor"
- name: "Check WAM Jsonschema is in sync of Zod"
run: |
npm run export-json-schema
echo "Check if there is a diff between the generated json schema and the one in the repo"
echo "If there is a diff, you need to run 'npm run export-json-schema' and commit the changes"
git diff --exit-code
working-directory: "libs/map-editor"
continuous-integration-shared-utils:
name: "Continuous Integration shared-utils Library"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2.0.0"
- name: "Setup NodeJS"
uses: actions/setup-node@v3
with:
node-version: 18
cache: "npm"
- name: Install Protoc
uses: arduino/setup-protoc@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
version: '3.x'
- name: "Install dependencies"
run: npm ci --workspace=@workadventure/shared-utils
- name: "Install messages dependencies"
run: npm ci
working-directory: "messages"
- name: "Build proto messages"
run: npm run ts-proto
working-directory: "messages"
- name: "Typecheck"
run: npm run typecheck
working-directory: "libs/shared-utils"
- name: "Lint"
run: npm run lint
working-directory: "libs/shared-utils"
- name: "Pretty"
run: npm run pretty-check
working-directory: "libs/shared-utils"
- name: "jest"
run: npm test
working-directory: "libs/shared-utils"
continuous-integration-map-storage:
name: "Continuous Integration Map Storage"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2.0.0"
- name: "Setup NodeJS"
uses: actions/setup-node@v3
with:
node-version: 16
cache: "npm"
- name: Install Protoc
uses: arduino/setup-protoc@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
version: '3.x'
- name: "Install dependencies"
run: npm ci --workspace=map-storage
- name: "Install messages dependencies"
run: npm ci
working-directory: "messages"
- name: "Build proto messages"
run: npm run ts-proto
working-directory: "messages"
- name: "Typecheck"
run: npm run typecheck
working-directory: "map-storage"
- name: "Lint"
run: npm run lint
working-directory: "map-storage"
- name: "Tests"
run: npm run test
working-directory: "map-storage"
- name: "Prettier"
run: npm run format
working-directory: "map-storage"
continuous-integration-room-api-client:
name: "Continuous Integration Room API Client"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2.0.0"
- name: "Setup NodeJS"
uses: actions/setup-node@v3
with:
node-version: 18
cache: "npm"
- name: Install Protoc
uses: arduino/setup-protoc@v1
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
version: '3.x'
- name: "Install dependencies"
run: npm ci
working-directory: "libs/room-api-clients/room-api-client-js"
- name: "Build proto messages"
run: npm run ts-proto
working-directory: "libs/room-api-clients/room-api-client-js"
- name: "Build"
run: npm run build
working-directory: "libs/room-api-clients/room-api-client-js"
- name: "Lint"
run: npm run lint
working-directory: "libs/room-api-clients/room-api-client-js"
- name: "Pretty"
run: npm run format-check
working-directory: "libs/room-api-clients/room-api-client-js"
continuous-integration-desktop:
name: "Continuous Integration Desktop"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2.0.0"
- name: "Setup NodeJS"
uses: actions/setup-node@v3
with:
node-version: 16
cache: "yarn"
cache-dependency-path: '**/yarn.lock'
- name: "Install dependencies"
run: yarn install
working-directory: "desktop/electron"
- name: "Build"
run: yarn run build
working-directory: "desktop/electron"
- name: "Typecheck"
run: yarn run typecheck
working-directory: "desktop/electron"
- name: "Lint"
run: yarn run lint
working-directory: "desktop/electron"
- name: "Jasmine"
run: yarn run test
working-directory: "desktop/electron"
- name: "Prettier"
run: yarn run pretty-check
working-directory: "desktop/electron"
continuous-integration-desktop-local-app:
name: "Continuous Integration Desktop Local App"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2.0.0"
- name: "Setup NodeJS"
uses: actions/setup-node@v3
with:
node-version: 16
cache: "yarn"
cache-dependency-path: '**/yarn.lock'
- name: "Install dependencies"
run: yarn install
working-directory: "desktop/local-app"
- name: "Build"
run: yarn build
working-directory: "desktop/local-app"
- name: "Typecheck"
run: yarn check
working-directory: "desktop/local-app"
- name: "Lint"
run: yarn lint
working-directory: "desktop/local-app"
- name: "Jasmine"
run: yarn test
working-directory: "desktop/local-app"
- name: "Prettier"
run: yarn pretty-check
working-directory: "desktop/local-app"
continuous-integration-end-to-end-tests:
name: "Continuous Integration checking End To End tests"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v2.0.0"
- name: "Setup NodeJS"
uses: actions/setup-node@v3
with:
node-version: 18
cache: "npm"
cache-dependency-path: 'tests/package-lock.json'
- name: "Install dependencies"
run: npm ci
working-directory: "tests"
- name: "Install play dependencies"
run: npm ci --workspace=workadventure-play
- name: "Install messages dependencies"
run: npm ci
working-directory: "messages"
- name: "Build proto messages"
run: npm run ts-proto
working-directory: "messages"
- name: "Install Room API client dependencies"
run: npm ci
working-directory: "libs/room-api-clients/room-api-client-js"
- name: "Build Room API proto files"
run: npm run ts-proto
working-directory: "libs/room-api-clients/room-api-client-js"
- name: "Build API typings"
run: npm run build-typings
working-directory: "play"
- name: "Lint"
run: npm run lint
working-directory: "tests"