Skip to content

Commit 284566e

Browse files
authored
Merge pull request #3 from maxnorm/feat/improve-ci
dummy change for test PR
2 parents 56d9d3a + 4d6dae0 commit 284566e

File tree

3 files changed

+31
-5
lines changed

3 files changed

+31
-5
lines changed

.github/scripts/coverage-comment.js

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,23 +86,35 @@ function getBadgeColor(coverage) {
8686
/**
8787
* Generate coverage report comment body
8888
* @param {object} metrics - Coverage metrics
89+
* @param {object} commitInfo - Optional commit information
8990
* @returns {string} Markdown formatted comment body
9091
*/
91-
function generateCoverageReport(metrics) {
92+
function generateCoverageReport(metrics, commitInfo = {}) {
9293
const lineCoverage = calculateCoverage(metrics.coveredLines, metrics.totalLines);
9394
const functionCoverage = calculateCoverage(metrics.coveredFunctions, metrics.totalFunctions);
9495
const branchCoverage = calculateCoverage(metrics.coveredBranches, metrics.totalBranches);
9596

9697
const badgeColor = getBadgeColor(lineCoverage);
9798
const badge = `![Coverage](https://img.shields.io/badge/coverage-${lineCoverage}%25-${badgeColor})`;
99+
100+
// Generate timestamp
101+
const timestamp = new Date().toUTCString();
102+
103+
// Build commit link if info is available
104+
let commitLink = '';
105+
if (commitInfo.sha && commitInfo.owner && commitInfo.repo) {
106+
const shortSha = commitInfo.sha.substring(0, 7);
107+
commitLink = ` for commit [\`${shortSha}\`](https://github.com/${commitInfo.owner}/${commitInfo.repo}/commit/${commitInfo.sha})`;
108+
}
98109

99110
return `## Coverage Report\n` +
100111
`${badge}\n\n` +
101112
`| Metric | Coverage | Details |\n` +
102113
`|--------|----------|----------|\n` +
103114
`| **Lines** | ${lineCoverage}% | ${metrics.coveredLines}/${metrics.totalLines} lines |\n` +
104115
`| **Functions** | ${functionCoverage}% | ${metrics.coveredFunctions}/${metrics.totalFunctions} functions |\n` +
105-
`| **Branches** | ${branchCoverage}% | ${metrics.coveredBranches}/${metrics.totalBranches} branches |\n\n`;
116+
`| **Branches** | ${branchCoverage}% | ${metrics.coveredBranches}/${metrics.totalBranches} branches |\n\n` +
117+
`*Last updated: ${timestamp}*${commitLink}\n`;
106118
}
107119

108120
/**
@@ -157,7 +169,14 @@ function generateCoverageFile() {
157169
console.log('- Functions:', metrics.coveredFunctions, '/', metrics.totalFunctions);
158170
console.log('- Branches:', metrics.coveredBranches, '/', metrics.totalBranches);
159171

160-
const body = generateCoverageReport(metrics);
172+
// Get commit info from environment variables
173+
const commitInfo = {
174+
sha: process.env.COMMIT_SHA,
175+
owner: process.env.REPO_OWNER,
176+
repo: process.env.REPO_NAME
177+
};
178+
179+
const body = generateCoverageReport(metrics, commitInfo);
161180
fs.writeFileSync('coverage-report.md', body);
162181
console.log('Coverage report saved to coverage-report.md');
163182
}

.github/workflows/coverage-comment.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ on:
55
workflows: ["Coverage"]
66
types:
77
- completed
8-
8+
99
permissions:
1010
actions: read
1111
pull-requests: write
1212
issues: write
1313
contents: read
14-
14+
1515
jobs:
1616
comment:
1717
name: Post Coverage Comment

.github/workflows/coverage.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,16 @@ jobs:
2929
3030
- name: Generate coverage report
3131
if: github.event_name == 'pull_request'
32+
env:
33+
COMMIT_SHA: ${{ github.event.pull_request.head.sha }}
34+
REPO_OWNER: ${{ github.repository_owner }}
35+
REPO_NAME: ${{ github.event.repository.name }}
3236
run: |
3337
node .github/scripts/coverage-comment.js
3438
echo "PR_NUMBER=${{ github.event.pull_request.number }}" >> coverage-data.txt
39+
echo "COMMIT_SHA=${{ github.event.pull_request.head.sha }}" >> coverage-data.txt
40+
echo "REPO_OWNER=${{ github.repository_owner }}" >> coverage-data.txt
41+
echo "REPO_NAME=${{ github.event.repository.name }}" >> coverage-data.txt
3542
echo "Generated coverage report for PR #${{ github.event.pull_request.number }}"
3643
3744
- name: Upload coverage data

0 commit comments

Comments
 (0)