Skip to content

Commit 05c2873

Browse files
committed
refactor license check
1 parent 6174744 commit 05c2873

File tree

1 file changed

+44
-68
lines changed

1 file changed

+44
-68
lines changed

.github/workflows/license-check.yml

Lines changed: 44 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
steps:
3434
- uses: actions/checkout@v4
3535
with:
36-
fetch-depth: 0
36+
fetch-depth: 1
3737

3838
- name: Set up JDK and Maven
3939
uses: actions/setup-java@v3
@@ -43,99 +43,75 @@ jobs:
4343
cache: 'maven'
4444

4545
- name: Run Apache RAT Check
46-
id: rat
4746
run: |
4847
echo "Running Apache Rat license check..."
4948
mvn apache-rat:check | tee rat-output.log
5049
51-
# Check for build failure
5250
if grep -q "\[INFO\] BUILD FAILURE" rat-output.log; then
53-
echo "rat_failed=true" >> $GITHUB_OUTPUT
5451
echo "::error::Apache Rat check failed - build failure detected"
5552
exit 1
5653
fi
57-
58-
# If we got here, the check passed
59-
echo "rat_failed=false" >> $GITHUB_OUTPUT
60-
echo "Apache Rat check passed successfully"
6154
6255
- name: Run NOTICE Year and binary file checks
63-
id: additional
6456
run: |
6557
set -o pipefail
6658
chmod +x ./tool/jenkins/rat_check.sh
6759
./tool/jenkins/rat_check.sh 2>&1 | tee license_checks.txt
68-
RAT_CHECK_EXIT_CODE=${PIPESTATUS[0]}
69-
70-
# Add summary based on exit code
71-
{
72-
if [ ${RAT_CHECK_EXIT_CODE} -eq 0 ]; then
73-
echo "### ✅ Additional Checks Passed"
74-
echo "- NOTICE file year is current"
75-
echo "- Version numbers match"
76-
echo "- No unexpected binary files found"
77-
else
78-
echo "### ❌ Additional Checks Failed"
79-
echo ""
80-
echo "**Check output:**"
81-
echo "\`\`\`"
82-
cat license_checks.txt
83-
echo "\`\`\`"
84-
exit 1
85-
fi
86-
} >> "$GITHUB_STEP_SUMMARY"
8760
8861
- name: Upload Rat check results
8962
if: always()
9063
uses: actions/upload-artifact@v4
9164
with:
9265
name: rat-check-results
93-
path: rat-output.log
66+
path: |
67+
rat-output.log
68+
license_checks.txt
9469
retention-days: 7
9570

96-
- name: Generate Job Summary
71+
- name: Generate Summary
9772
if: always()
9873
run: |
99-
{
100-
if [[ ! -f rat-output.log ]]; then
101-
echo "### ⚠️ No Output Log Found"
102-
exit 0
103-
fi
104-
105-
# Determine result status
106-
if grep -q "\[INFO\] BUILD SUCCESS" rat-output.log; then
107-
echo "### ✅ License Check Passed"
108-
echo "All files comply with Apache License requirements."
109-
else
110-
echo "### ❌ License Check Failed"
111-
echo ""
112-
113-
# Extract and display files with unapproved licenses
114-
if grep -q "Files with unapproved licenses:" rat-output.log; then
115-
echo "**Files with unapproved licenses:**"
116-
echo ""
117-
sed -n '/Files with unapproved licenses:/,/\[INFO\] ------------------------------------------------------------------------/p' rat-output.log | \
118-
grep -v "\[INFO\] ------------------------------------------------------------------------" | \
119-
grep -v "^$" | \
120-
head -20 | \
121-
sed 's/^/- /'
122-
echo ""
123-
fi
74+
# Check RAT results
75+
if [[ -f rat-output.log ]] && grep -q "\[INFO\] BUILD SUCCESS" rat-output.log; then
76+
echo "### ✅ License Check Passed" >> "$GITHUB_STEP_SUMMARY"
77+
echo "All files comply with Apache License requirements." >> "$GITHUB_STEP_SUMMARY"
78+
elif [[ -f rat-output.log ]]; then
79+
echo "### ❌ License Check Failed" >> "$GITHUB_STEP_SUMMARY"
80+
echo "" >> "$GITHUB_STEP_SUMMARY"
12481
125-
# Show summary statistics
126-
if grep -q "Rat check: Summary over all files" rat-output.log; then
127-
echo "**Summary:**"
128-
grep "Rat check: Summary over all files" rat-output.log | sed 's/\[INFO\] //'
129-
fi
82+
if grep -q "Files with unapproved licenses:" rat-output.log; then
83+
echo "**Files with unapproved licenses:**" >> "$GITHUB_STEP_SUMMARY"
84+
echo "" >> "$GITHUB_STEP_SUMMARY"
85+
sed -n '/Files with unapproved licenses:/,/\[INFO\] ------------------------------------------------------------------------/p' rat-output.log | \
86+
grep -v "\[INFO\] ------------------------------------------------------------------------" | \
87+
grep -v "^$" | \
88+
head -20 | \
89+
sed 's/^/- /' >> "$GITHUB_STEP_SUMMARY"
90+
echo "" >> "$GITHUB_STEP_SUMMARY"
13091
fi
131-
} >> "$GITHUB_STEP_SUMMARY"
13292
133-
- name: Report Status
134-
if: always()
135-
shell: bash {0}
136-
run: |
137-
if [[ -f rat-output.log ]] && grep -q "\[INFO\] BUILD SUCCESS" rat-output.log; then
138-
exit 0
93+
if grep -q "Rat check: Summary over all files" rat-output.log; then
94+
echo "**Summary:**" >> "$GITHUB_STEP_SUMMARY"
95+
grep "Rat check: Summary over all files" rat-output.log | sed 's/\[INFO\] //' >> "$GITHUB_STEP_SUMMARY"
96+
fi
13997
else
140-
exit 1
98+
echo "### ⚠️ No RAT Output Log Found" >> "$GITHUB_STEP_SUMMARY"
99+
fi
100+
101+
# Check additional checks results
102+
echo "" >> "$GITHUB_STEP_SUMMARY"
103+
if [[ -f license_checks.txt ]]; then
104+
if grep -q "Error" license_checks.txt || grep -q "FAILED" license_checks.txt; then
105+
echo "### ❌ Additional Checks Failed" >> "$GITHUB_STEP_SUMMARY"
106+
echo "" >> "$GITHUB_STEP_SUMMARY"
107+
echo "**Check output:**" >> "$GITHUB_STEP_SUMMARY"
108+
echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY"
109+
cat license_checks.txt >> "$GITHUB_STEP_SUMMARY"
110+
echo "\`\`\`" >> "$GITHUB_STEP_SUMMARY"
111+
else
112+
echo "### ✅ Additional Checks Passed" >> "$GITHUB_STEP_SUMMARY"
113+
echo "- NOTICE file year is current" >> "$GITHUB_STEP_SUMMARY"
114+
echo "- Version numbers match" >> "$GITHUB_STEP_SUMMARY"
115+
echo "- No unexpected binary files found" >> "$GITHUB_STEP_SUMMARY"
116+
fi
141117
fi

0 commit comments

Comments
 (0)