144 lines
No EOL
7.2 KiB
YAML
144 lines
No EOL
7.2 KiB
YAML
# Checking unit tests for tracker and assist
|
|
name: Tracker tests
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches: [ "main", "dev" ]
|
|
paths:
|
|
- tracker/**
|
|
pull_request:
|
|
branches: [ "dev", "main" ]
|
|
paths:
|
|
- tracker/**
|
|
jobs:
|
|
build-and-test:
|
|
runs-on: macos-latest
|
|
name: Build and test Tracker
|
|
steps:
|
|
- uses: oven-sh/setup-bun@v2
|
|
with:
|
|
bun-version: latest
|
|
- uses: actions/checkout@v4
|
|
- name: Cache tracker modules
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: tracker/node_modules
|
|
key: ${{ runner.OS }}-test_tracker_build-${{ hashFiles('**/bun.lock') }}
|
|
restore-keys: |
|
|
test_tracker_build{{ runner.OS }}-build-
|
|
test_tracker_build{{ runner.OS }}-
|
|
- name: Setup Testing packages
|
|
run: |
|
|
cd tracker
|
|
bun install
|
|
|
|
# Run tracker tests and generate coverage
|
|
- name: Jest tests
|
|
run: |
|
|
cd tracker/tracker
|
|
bun run test:ci
|
|
|
|
- name: Building test
|
|
run: |
|
|
cd tracker/tracker
|
|
bun run build
|
|
|
|
# Run tracker-assist tests and generate coverage
|
|
- name: (TA) Jest tests
|
|
run: |
|
|
cd tracker/tracker-assist
|
|
bun run test:ci
|
|
|
|
- name: (TA) Building test
|
|
run: |
|
|
cd tracker/tracker-assist
|
|
bun run build
|
|
|
|
# For PRs, parse coverage and create comment
|
|
- name: Parse Coverage Reports
|
|
if: github.event_name == 'pull_request'
|
|
id: coverage-report
|
|
run: |
|
|
echo "TRACKER_COVERAGE=$(cd tracker/tracker && jq -r '.total.lines.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "TRACKER_STATEMENTS=$(cd tracker/tracker && jq -r '.total.statements.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "TRACKER_BRANCHES=$(cd tracker/tracker && jq -r '.total.branches.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "TRACKER_FUNCTIONS=$(cd tracker/tracker && jq -r '.total.functions.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
|
|
echo "TA_COVERAGE=$(cd tracker/tracker-assist && jq -r '.total.lines.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "TA_STATEMENTS=$(cd tracker/tracker-assist && jq -r '.total.statements.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "TA_BRANCHES=$(cd tracker/tracker-assist && jq -r '.total.branches.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "TA_FUNCTIONS=$(cd tracker/tracker-assist && jq -r '.total.functions.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
|
|
# For PRs, check out base branch for comparison
|
|
- name: Check out base branch for coverage comparison
|
|
if: github.event_name == 'pull_request'
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.base_ref }}
|
|
path: dev
|
|
|
|
- name: Setup base branch for comparison
|
|
if: github.event_name == 'pull_request'
|
|
run: |
|
|
cd tracker/tracker
|
|
bun install
|
|
|
|
# Calculate coverage for base branch
|
|
- name: Get base branch coverage
|
|
if: github.event_name == 'pull_request'
|
|
id: base-coverage
|
|
run: |
|
|
cd tracker/tracker
|
|
bun run test:ci
|
|
echo "BASE_TRACKER_COVERAGE=$(jq -r '.total.lines.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "BASE_TRACKER_STATEMENTS=$(jq -r '.total.statements.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "BASE_TRACKER_BRANCHES=$(jq -r '.total.branches.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "BASE_TRACKER_FUNCTIONS=$(jq -r '.total.functions.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
|
|
cd ../tracker-assist
|
|
bun run test:ci
|
|
echo "BASE_TA_COVERAGE=$(jq -r '.total.lines.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "BASE_TA_STATEMENTS=$(jq -r '.total.statements.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "BASE_TA_BRANCHES=$(jq -r '.total.branches.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
echo "BASE_TA_FUNCTIONS=$(jq -r '.total.functions.pct' coverage/coverage-summary.json)" >> $GITHUB_ENV
|
|
|
|
# Calculate coverage changes
|
|
- name: Calculate Coverage Changes
|
|
if: github.event_name == 'pull_request'
|
|
run: |
|
|
echo "TRACKER_COVERAGE_CHANGE=$(echo "$TRACKER_COVERAGE - $BASE_TRACKER_COVERAGE" | bc)" >> $GITHUB_ENV
|
|
echo "TRACKER_STATEMENTS_CHANGE=$(echo "$TRACKER_STATEMENTS - $BASE_TRACKER_STATEMENTS" | bc)" >> $GITHUB_ENV
|
|
echo "TRACKER_BRANCHES_CHANGE=$(echo "$TRACKER_BRANCHES - $BASE_TRACKER_BRANCHES" | bc)" >> $GITHUB_ENV
|
|
echo "TRACKER_FUNCTIONS_CHANGE=$(echo "$TRACKER_FUNCTIONS - $BASE_TRACKER_FUNCTIONS" | bc)" >> $GITHUB_ENV
|
|
|
|
echo "TA_COVERAGE_CHANGE=$(echo "$TA_COVERAGE - $BASE_TA_COVERAGE" | bc)" >> $GITHUB_ENV
|
|
echo "TA_STATEMENTS_CHANGE=$(echo "$TA_STATEMENTS - $BASE_TA_STATEMENTS" | bc)" >> $GITHUB_ENV
|
|
echo "TA_BRANCHES_CHANGE=$(echo "$TA_BRANCHES - $BASE_TA_BRANCHES" | bc)" >> $GITHUB_ENV
|
|
echo "TA_FUNCTIONS_CHANGE=$(echo "$TA_FUNCTIONS - $BASE_TA_FUNCTIONS" | bc)" >> $GITHUB_ENV
|
|
|
|
# Post coverage summary as PR comment
|
|
- name: Create Coverage PR Comment
|
|
if: github.event_name == 'pull_request'
|
|
uses: marocchino/sticky-pull-request-comment@v2
|
|
with:
|
|
header: coverage-report
|
|
message: |
|
|
## Code Coverage Report 📊
|
|
|
|
### Tracker
|
|
| Metric | Current | Base | Change |
|
|
| ------ | ------- | ---- | ------ |
|
|
| Lines | ${{ env.TRACKER_COVERAGE }}% | ${{ env.BASE_TRACKER_COVERAGE }}% | ${{ env.TRACKER_COVERAGE_CHANGE >= 0 && '+' || '' }}${{ env.TRACKER_COVERAGE_CHANGE }}% |
|
|
| Statements | ${{ env.TRACKER_STATEMENTS }}% | ${{ env.BASE_TRACKER_STATEMENTS }}% | ${{ env.TRACKER_STATEMENTS_CHANGE >= 0 && '+' || '' }}${{ env.TRACKER_STATEMENTS_CHANGE }}% |
|
|
| Branches | ${{ env.TRACKER_BRANCHES }}% | ${{ env.BASE_TRACKER_BRANCHES }}% | ${{ env.TRACKER_BRANCHES_CHANGE >= 0 && '+' || '' }}${{ env.TRACKER_BRANCHES_CHANGE }}% |
|
|
| Functions | ${{ env.TRACKER_FUNCTIONS }}% | ${{ env.BASE_TRACKER_FUNCTIONS }}% | ${{ env.TRACKER_FUNCTIONS_CHANGE >= 0 && '+' || '' }}${{ env.TRACKER_FUNCTIONS_CHANGE }}% |
|
|
|
|
### Tracker-Assist
|
|
| Metric | Current | Base | Change |
|
|
| ------ | ------- | ---- | ------ |
|
|
| Lines | ${{ env.TA_COVERAGE }}% | ${{ env.BASE_TA_COVERAGE }}% | ${{ env.TA_COVERAGE_CHANGE >= 0 && '+' || '' }}${{ env.TA_COVERAGE_CHANGE }}% |
|
|
| Statements | ${{ env.TA_STATEMENTS }}% | ${{ env.BASE_TA_STATEMENTS }}% | ${{ env.TA_STATEMENTS_CHANGE >= 0 && '+' || '' }}${{ env.TA_STATEMENTS_CHANGE }}% |
|
|
| Branches | ${{ env.TA_BRANCHES }}% | ${{ env.BASE_TA_BRANCHES }}% | ${{ env.TA_BRANCHES_CHANGE >= 0 && '+' || '' }}${{ env.TA_BRANCHES_CHANGE }}% |
|
|
| Functions | ${{ env.TA_FUNCTIONS }}% | ${{ env.BASE_TA_FUNCTIONS }}% | ${{ env.TA_FUNCTIONS_CHANGE >= 0 && '+' || '' }}${{ env.TA_FUNCTIONS_CHANGE }}% |
|
|
|
|
[View detailed coverage report](${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}) |