feat(rooms): add rooms for io events filtering #10462
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: test | |
on: | |
push: | |
branches: | |
- 'master' | |
- '*.*.*' | |
- 'renovate/**' | |
tags: | |
- '*.*.*' | |
pull_request: | |
branches: | |
- 'master' | |
merge_group: | |
jobs: | |
unit-tests: | |
name: unit | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: | |
- 18.x | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: yarn | |
- name: Install dependencies | |
run: yarn install --immutable | |
- name: Run unit test | |
run: yarn test:ci | |
- name: Upload test coverage info | |
uses: codecov/codecov-action@v3 | |
e2e-tests: | |
name: end-to-end | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: | |
- 18.x | |
test-name: | |
- 'e2e/app.e2e-spec.ts' | |
- 'e2e/assign-and-release-gameserver.e2e-spec.ts' | |
- 'e2e/cancel-player-substitute.e2e-spec.ts' | |
- 'e2e/configuration.e2e-spec.ts' | |
- 'e2e/game-server-diagnostics.e2e-spec.ts' | |
- 'e2e/game-server-heartbeat.e2e-spec.ts' | |
- 'e2e/launch-game.e2e-spec.ts' | |
- 'e2e/manage-player-bans.e2e-spec.ts' | |
- 'e2e/player-action-logs.e2e-spec.ts' | |
- 'e2e/player-disconnects-and-gets-substituted.e2e-spec.ts' | |
- 'e2e/player-does-not-join-and-gets-substituted.e2e-spec.ts' | |
- 'e2e/player-substitutes-another-player.e2e-spec.ts' | |
- 'e2e/player-substitutes-himself.e2e-spec.ts' | |
- 'e2e/reassign-game-server.e2e-spec.ts' | |
- 'e2e/update-player-skill.e2e-spec.ts' | |
- 'e2e/websocket.e2e-spec.ts' | |
services: | |
mongo: | |
image: mongo:4.0 | |
ports: | |
- 27017:27017 | |
redis: | |
image: redis:7-alpine | |
ports: | |
- 6379:6379 | |
gameserver1: | |
image: ghcr.io/tf2pickup-org/tf2-gameserver:nightly | |
ports: | |
- 27015:27015/tcp | |
- 27015:27015/udp | |
- 27020:27020/udp | |
env: | |
SERVER_HOSTNAME: 'test game server 1' | |
PORT: 27015 | |
CLIENT_PORT: 27016 | |
STEAM_PORT: 27017 | |
STV_PORT: 27020 | |
RCON_PASSWORD: '123456' | |
TF2PICKUPORG_API_ADDRESS: 'host.docker.internal:3000' | |
TF2PICKUPORG_SECRET: 'xxxxxx' | |
options: --tty --add-host host.docker.internal:host-gateway | |
gameserver2: | |
image: ghcr.io/tf2pickup-org/tf2-gameserver:nightly | |
ports: | |
- 27025:27025/tcp | |
- 27025:27025/udp | |
- 27030:27030/udp | |
env: | |
SERVER_HOSTNAME: 'test game server 2' | |
PORT: 27025 | |
CLIENT_PORT: 27026 | |
STEAM_PORT: 27027 | |
STV_PORT: 27030 | |
RCON_PASSWORD: '123456' | |
TF2PICKUPORG_API_ADDRESS: 'host.docker.internal:3000' | |
TF2PICKUPORG_SECRET: 'xxxxxx' | |
options: --tty --add-host host.docker.internal:host-gateway | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: yarn | |
- name: Install dependencies | |
run: yarn install --immutable | |
- name: Setup mongodb-tools | |
run: | | |
wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2204-x86_64-100.6.1.deb | |
sudo apt install ./mongodb-database-tools-*-100.6.1.deb | |
mongorestore --version | |
- name: Restore database dump for e2e tests | |
run: mongorestore mongodb://localhost:27017 --quiet e2e/dump/ | |
- name: Run e2e tests | |
env: | |
WEBSITE_NAME: 'tf2pickup.pl e2e testing' | |
API_URL: 'http://localhost:3000' | |
CLIENT_URL: 'http://localhost:4200' | |
BOT_NAME: 'tf2pickup.pl' | |
MONGODB_URI: 'mongodb://localhost:27017/tf2pickuppl_e2e_tests' | |
REDIS_URL: 'redis://localhost:6379' | |
STEAM_API_KEY: 'FAKE_API_KEY' | |
KEY_STORE_PASSPHRASE: 'a_password' | |
SUPER_USER: '76561199195756652' | |
QUEUE_CONFIG: '6v6' | |
LOG_RELAY_ADDRESS: 'host.docker.internal' | |
LOG_RELAY_PORT: '9871' | |
GAME_SERVER_SECRET: 'xxxxxx' | |
LOGS_TF_API_KEY: 'FAKE_LOGS_TF_API_KEY' | |
run: yarn test:e2e ${{ matrix.test-name }} | |
- name: Upload test coverage info | |
uses: codecov/codecov-action@v3 | |
- name: Show gameserver logs | |
if: failure() | |
run: | | |
docker logs "${{ job.services.gameserver1.id }}" | |
docker logs "${{ job.services.gameserver2.id }}" | |
# Start the app with a clean database and verify it doesn't crash | |
fresh-start: | |
name: fresh-start | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: | |
- 18.x | |
services: | |
mongo: | |
image: mongo:4.0 | |
ports: | |
- 27017:27017 | |
redis: | |
image: redis:7-alpine | |
ports: | |
- 6379:6379 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: yarn | |
- name: Install dependencies | |
run: yarn install --immutable | |
- name: Run fresh instance | |
env: | |
WEBSITE_NAME: 'tf2pickup.org fresh' | |
API_URL: 'http://localhost:3000' | |
CLIENT_URL: 'http://localhost:4200' | |
BOT_NAME: 'tf2pickup.pl' | |
MONGODB_URI: 'mongodb://localhost:27017/tf2pickuporg_fresh' | |
REDIS_URL: 'redis://localhost:6379' | |
STEAM_API_KEY: 'FAKE_API_KEY' | |
KEY_STORE_PASSPHRASE: 'a_password' | |
SUPER_USER: '76561199195756652' | |
QUEUE_CONFIG: '6v6' | |
LOG_RELAY_ADDRESS: 'host.docker.internal' | |
LOG_RELAY_PORT: '9871' | |
GAME_SERVER_SECRET: 'xxxxxx' | |
LOGS_TF_API_KEY: 'FAKE_LOGS_TF_API_KEY' | |
run: timeout 3m yarn dev || code=$?; if [[ $code -ne 124 && $code -ne 0 ]]; then exit $code; fi | |
build: | |
name: build | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: | |
- 18.x | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: yarn | |
- name: Install dependencies | |
run: yarn install --immutable | |
- name: Build | |
run: yarn build |