Skip to content

Commit 7029b39

Browse files
da-KaiKai Jeschek
and
Kai Jeschek
authored
CI: add Code-Coverage comment on Pull-Request (OpenEMS#2255)
Co-authored-by: Kai Jeschek <[email protected]>
1 parent 3fdb1e1 commit 7029b39

File tree

7 files changed

+111
-140
lines changed

7 files changed

+111
-140
lines changed

.github/workflows/build.yml

+16-36
Original file line numberDiff line numberDiff line change
@@ -12,32 +12,14 @@ jobs:
1212
- name: Setup Java 17
1313
uses: actions/setup-java@v3
1414
with:
15-
distribution: "temurin"
16-
java-version: "17"
17-
java-package: jdk
18-
19-
- name: Setup Cache for Java/Gradle
20-
uses: actions/cache@v3
21-
with:
22-
path: |
23-
~/.gradle/caches
24-
~/.gradle/wrapper
25-
~/.gradle/native
26-
~/.gradle/notifications
27-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
28-
restore-keys: ${{ runner.os }}-gradle-
29-
30-
- name: Setup Cache for Java/Maven
31-
uses: actions/cache@v3
32-
with:
33-
path: ~/.m2/repository
34-
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
35-
restore-keys: ${{ runner.os }}-maven-
15+
distribution: 'temurin'
16+
java-version: '17'
17+
cache: gradle
3618

3719
- uses: kiancross/checkstyle-annotations-action@v1
3820

3921
- name: Build all Java packages
40-
run: ./gradlew --build-cache build
22+
run: ./gradlew build
4123

4224
- name: Resolve OpenEMS bundles
4325
run: ./gradlew resolve
@@ -54,37 +36,35 @@ jobs:
5436
- name: Generate JaCoCo Code-coverage-report
5537
run: ./gradlew jacocoTestReport
5638

57-
- name: Generate JaCoCo Report
39+
- name: Summarize JaCoCo Report
5840
id: jacoco
5941
uses: cicirello/jacoco-badge-generator@v2
6042
with:
61-
jacoco-csv-file: "io.openems.*/generated/reports/jacoco/**/*.csv"
62-
generate-coverage-endpoint: true
63-
generate-summary: true
43+
jacoco-csv-file: 'io.openems.*/generated/reports/jacoco/**/*.csv'
44+
generate-coverage-badge: false
6445

65-
- name: Generate JaCoCo Badge
66-
id: jacoco-badge
46+
- name: Create JaCoCo Badge
6747
env:
6848
PR_NUMBER: ${{ github.event.number }}
6949
run: |
7050
coverage=$(echo "scale=2; ${{ steps.jacoco.outputs.coverage }} * 100" | bc | cut -c1-4);
7151
7252
color=red;
73-
if (( $(echo "$coverage > 95" | bc -l) )); then
53+
if (( $(echo "$coverage > 90" | bc -l) )); then
7454
color=success;
7555
elif (( $(echo "$coverage > 80" | bc -l) )); then
7656
color=green;
77-
elif (( $(echo "$coverage > 95" | bc -l) )); then
57+
elif (( $(echo "$coverage > 60" | bc -l) )); then
7858
color=yellow;
7959
fi;
8060
81-
mkdir -p ./pr
82-
echo 'badge=![Code Coverage]'"(https://img.shields.io/badge/Code%20Coverage-${coverage}%25-${color}?style=flat)" > ./pr/pr_badge
83-
echo $PR_NUMBER > ./pr/pr_number
61+
mkdir -p ./jacoco
62+
echo $PR_NUMBER > ./jacoco/jacoco_report_number
63+
echo '![Code Coverage]'"(https://img.shields.io/badge/Code%20Coverage-${coverage}%25-${color}?style=flat)" > ./jacoco/jacoco_report_badge
8464
- uses: actions/upload-artifact@v3
8565
with:
86-
name: pr_comment
87-
path: pr/
66+
name: jacoco_report
67+
path: jacoco/
8868

8969
#
9070
# Is this a Tag? Prepare release assets
@@ -110,7 +90,7 @@ jobs:
11090
- name: Setup Node.js
11191
uses: actions/setup-node@v3
11292
with:
113-
node-version: "16"
93+
node-version: '16'
11494

11595
- name: Setup Cache for Node.js
11696
uses: actions/cache@v3

.github/workflows/comment.yml

+16-15
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,47 @@
11
name: Comment Pull_Request
22
on:
33
workflow_run:
4-
workflows: [Upload data]
4+
workflows: [Build OpenEMS]
55
types:
66
- completed
77

88
jobs:
9-
download:
9+
comment_jacoco:
1010
runs-on: ubuntu-latest
11+
if: ${{ github.event.workflow_run.conclusion == 'success' }}
1112
steps:
1213
- name: 'Download artifact'
13-
uses: actions/github-script@v5
14+
uses: actions/github-script@v6
1415
with:
1516
script: |
1617
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
17-
owner: context.repo.owner,
18-
repo: context.repo.repo,
19-
run_id: context.payload.workflow_run.id,
18+
owner: context.repo.owner,
19+
repo: context.repo.repo,
20+
run_id: context.payload.workflow_run.id,
2021
});
2122
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
22-
return artifact.name == "pr_comment"
23+
return artifact.name == 'jacoco_report'
2324
})[0];
2425
let download = await github.rest.actions.downloadArtifact({
25-
owner: context.repo.owner,
26-
repo: context.repo.repo,
27-
artifact_id: matchArtifact.id,
28-
archive_format: 'zip',
26+
owner: context.repo.owner,
27+
repo: context.repo.repo,
28+
artifact_id: matchArtifact.id,
29+
archive_format: 'zip',
2930
});
3031
let fs = require('fs');
31-
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr_number.zip`, Buffer.from(download.data));
32+
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/jacoco_report.zip`, Buffer.from(download.data));
3233
3334
- name: 'Unzip artifact'
34-
run: unzip pr_comment.zip
35+
run: unzip jacoco_report.zip
3536

3637
- name: 'Comment on PR'
3738
uses: actions/github-script@v6
3839
with:
3940
github-token: ${{ secrets.GITHUB_TOKEN }}
4041
script: |
4142
let fs = require('fs');
42-
let comment = fs.readFileSync('./pr_badge');
43-
let issue_number = Number(fs.readFileSync('./pr_number'));
43+
let comment = fs.readFileSync('./jacoco_report_badge', { encoding: 'utf8', flag: 'r' });
44+
let issue_number = Number(fs.readFileSync('./jacoco_report_number'));
4445
await github.rest.issues.createComment({
4546
owner: context.repo.owner,
4647
repo: context.repo.repo,

.github/workflows/docs.yml

+1-12
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,7 @@ jobs:
1515
with:
1616
distribution: 'temurin'
1717
java-version: '17'
18-
java-package: jdk
19-
20-
- name: Setup Cache for Java/Gradle
21-
uses: actions/cache@v3
22-
with:
23-
path: |
24-
~/.gradle/caches
25-
~/.gradle/wrapper
26-
~/.gradle/native
27-
~/.gradle/notifications
28-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
29-
restore-keys: ${{ runner.os }}-gradle-
18+
cache: gradle
3019

3120
- name: Build Javadocs
3221
run: ./gradlew buildAggregatedJavadocs --continue

0 commit comments

Comments
 (0)