name: Unit tests on Pull Request or Push on: push: branches: - main pull_request: branches: - main types: - opened - synchronize - reopened - ready_for_review workflow_dispatch: inputs: test_results_retention_days: description: 'Test results retention (in days)' required: true default: '7' node_version: description: 'NodeJS version' required: true default: '22.x' jobs: test: name: Run tests timeout-minutes: 2 runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v4 - name: Node setup uses: actions/setup-node@v4 with: node-version: ${{ inputs.node_version || '22.x' }} cache: npm - name: Install npm dependencies run: npm ci - name: Run test against code run: npm run test:unit -- --json --outputFile=test-results-unit.json - name: Upload test results uses: actions/upload-artifact@v4 with: name: test-results-unit path: test-results-unit.json retention-days: ${{ inputs.test_results_retention_days }}