fix(etf2l): replace axios with native fetch #11089
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: Setup pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: pnpm | |
- name: Install dependencies | |
run: pnpm install | |
- name: Run unit test | |
run: pnpm test:ci | |
- name: Upload test coverage info | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
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:latest | |
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:latest | |
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: Setup pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: pnpm | |
- name: Install dependencies | |
run: pnpm install | |
- 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: pnpm test:e2e ${{ matrix.test-name }} | |
- name: Upload test coverage info | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- 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: Setup pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: pnpm | |
- name: Install dependencies | |
run: pnpm install | |
- 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 pnpm 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: Setup pnpm | |
uses: pnpm/action-setup@v2 | |
with: | |
version: 8 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: pnpm | |
- name: Install dependencies | |
run: pnpm install | |
- name: Build | |
run: pnpm build |