Modern QA2026Associating Test Results with Releases — tiles
Log inJoin
45 / 57 · 17 Git & Version Control · Tagging and Releases← prev⊞ allnext →☰ Read as one page

6.5Associating Test Results with Releases

The gold standard is a release process where test results are permanently linked to the release tag.

In the Tag Message

git tag -a v2.4.0 -m "Release 2.4.0

Test Results:
  Unit tests: 1,247/1,247 passed
  Integration tests: 89/89 passed
  Browser tests: 342/342 passed (Chrome 120, Firefox 121, Safari 17)
  Visual regression: 0 diffs detected
  Performance: LCP 1.2s (budget: 2.5s), FID 45ms (budget: 100ms)

CI Run: https://github.com/org/repo/actions/runs/12345
Test Report: https://qa-reports.example.com/releases/2.4.0

Known Issues:
  SHOP-567: Tooltip misalignment on mobile (low priority)
  SHOP-589: Slow search on large datasets (medium, fix planned for 2.5.0)"

In GitHub Releases

GitHub Releases provide a richer interface than raw tags. You can add formatted release notes, attach binary artifacts, and mark pre-releases.

# Create a GitHub release from a tag
gh release create v2.4.0 \
  --title "Release 2.4.0" \
  --notes "## What's New
- Redesigned checkout flow
- Added PayPal support
- Fixed 12 bugs from 2.3.x

## Test Results
- Full regression: 342/342 passed
- [CI Run](https://github.com/org/repo/actions/runs/12345)
- [Test Report](https://qa-reports.example.com/releases/2.4.0)

## Known Issues
- SHOP-567: Tooltip misalignment on mobile"

In CI/CD Pipeline (Automated)

The best approach: automate release tagging as part of the pipeline.

# Tag and release after all tests pass
create-release:
  needs: [unit-tests, integration-tests, browser-tests]
  if: github.ref == 'refs/heads/main' && github.event_name == 'push'
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4

    - name: Determine version
      id: version
      run: echo "VERSION=$(cat package.json | jq -r .version)" >> $GITHUB_OUTPUT

    - name: Create tag
      run: |
        git tag -a "v${{ steps.version.outputs.VERSION }}" \
          -m "Release ${{ steps.version.outputs.VERSION }} - all tests passed"
        git push origin "v${{ steps.version.outputs.VERSION }}"