name: Upload Coverage to Codecov (Push only) on: push: branches: - main - development - 'feature/**' permissions: contents: read jobs: backend-codecov: name: Backend Codecov Upload runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 with: fetch-depth: 0 - name: Set up Go uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6 with: go-version: '1.25.5' cache-dependency-path: backend/go.sum - name: Run Go tests working-directory: backend env: CGO_ENABLED: 1 run: | go test -race -v -coverprofile=coverage.out ./... 2>&1 | tee test-output.txt exit ${PIPESTATUS[0]} - name: Upload backend coverage to Codecov uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5 with: token: ${{ secrets.CODECOV_TOKEN }} files: ./backend/coverage.out flags: backend fail_ci_if_error: true frontend-codecov: name: Frontend Codecov Upload runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 with: fetch-depth: 0 - name: Set up Node.js uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6 with: node-version: '24.11.1' cache: 'npm' cache-dependency-path: frontend/package-lock.json - name: Install dependencies working-directory: frontend run: npm ci - name: Run frontend tests and coverage working-directory: ${{ github.workspace }} run: | bash scripts/frontend-test-coverage.sh 2>&1 | tee frontend/test-output.txt exit ${PIPESTATUS[0]} - name: Upload frontend coverage to Codecov uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5 with: token: ${{ secrets.CODECOV_TOKEN }} directory: ./frontend/coverage flags: frontend fail_ci_if_error: true