name: Test and Coverage on: push: branches: [main, master] pull_request: branches: [main, master] jobs: test: runs-on: ubuntu-latest defaults: run: working-directory: ./discord strategy: matrix: node-version: [18.x, 20.x, 22.x] steps: - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'npm' cache-dependency-path: discord/package-lock.json - name: Install dependencies run: npm ci - name: Build TypeScript run: npm run build || echo "Build warnings - continuing with tests" - name: Run tests with coverage run: npm run test:ci - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v4 with: files: ./discord/coverage/lcov.info flags: discord-bot name: discord-bot-coverage fail_ci_if_error: false env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - name: Upload coverage artifact uses: actions/upload-artifact@v4 with: name: coverage-report-node-${{ matrix.node-version }} path: discord/coverage/ retention-days: 7