name: CI on: push: tags-ignore: - '**@*' pull_request: schedule: - cron: '0 0 * * 0' permissions: contents: read jobs: test-node: runs-on: ubuntu-latest timeout-minutes: 10 strategy: fail-fast: false matrix: node-version: - 18 - 20 services: redis: image: redis:7 options: >- --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5 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 }} - name: Install dependencies run: npm ci - name: Compile each package run: npm run compile --workspaces --if-present - name: Run tests run: npm test --workspaces - name: Run tests with uws (engine.io) run: npm run test:uws --workspace=engine.io if: ${{ matrix.node-version == '18' }} - name: Run tests with fetch instead of XHR (engine.io-client) run: npm run test:node-fetch --workspace=engine.io-client if: ${{ matrix.node-version == '18' }}