forked from claude-did-this/claude-hub
- Add combined coverage script to merge lcov reports - Update GitHub workflows to generate and upload combined coverage - Install missing CLI dependencies (ora, yaml, cli-table3, mock-fs) - Add initial tests for SessionManager and IssueHandler - Exclude type-only files from coverage metrics - Update jest config to exclude type files from coverage This ensures Codecov receives coverage data from both the main project and CLI subdirectory, providing accurate overall project coverage metrics.
57 lines
1.4 KiB
YAML
57 lines
1.4 KiB
YAML
name: Pull Request
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
env:
|
|
NODE_VERSION: '20'
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
cache: npm
|
|
- run: npm ci
|
|
- run: npm run format:check
|
|
- run: npm run lint:check
|
|
- run: npm run typecheck
|
|
- name: Install CLI dependencies
|
|
working-directory: ./cli
|
|
run: npm ci
|
|
- name: Generate combined coverage
|
|
run: ./scripts/combine-coverage.js
|
|
env:
|
|
NODE_ENV: test
|
|
- uses: codecov/codecov-action@v5
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
directory: ./coverage-combined
|
|
fail_ci_if_error: true
|
|
|
|
security:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: ./scripts/security/credential-audit.sh
|
|
- uses: trufflesecurity/trufflehog@main
|
|
with:
|
|
path: ./
|
|
base: ${{ github.event.pull_request.base.sha }}
|
|
head: ${{ github.event.pull_request.head.sha }}
|
|
extra_args: --debug --only-verified
|
|
|
|
docker:
|
|
runs-on: ubuntu-latest
|
|
if: contains(github.event.pull_request.changed_files, 'Dockerfile') || contains(github.event.pull_request.changed_files, 'src/')
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: docker/build-push-action@v6
|
|
with:
|
|
context: .
|
|
push: false
|
|
tags: test:latest |