Add Apache RAT GitHub workflow
diff --git a/.github/workflows/rat.yml b/.github/workflows/rat.yml
new file mode 100644
index 0000000..041bf8e
--- /dev/null
+++ b/.github/workflows/rat.yml
@@ -0,0 +1,61 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: RAT Report
+on:
+ push:
+ branches:
+ - '[4-9]+.[0-9]+.x'
+ - '[3-9]+.[3-9]+.x'
+ - license-audit
+ pull_request:
+ branches:
+ - '[4-9]+.[0-9]+.x'
+ - '[3-9]+.[3-9]+.x'
+ - license-audit
+ workflow_dispatch:
+# queue jobs and only allow 1 run per branch due to the likelihood of hitting GitHub resource limits
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: false
+jobs:
+ rat-audit:
+ runs-on: ubuntu-latest
+ steps:
+ - name: "📥 Checkout repository"
+ uses: actions/checkout@v4
+ - name: "☕️ Setup JDK"
+ uses: actions/setup-java@v4
+ with:
+ distribution: liberica
+ java-version: 17
+ - name: "🐘 Setup Gradle"
+ uses: gradle/actions/setup-gradle@v4
+ with:
+ develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
+ - name: "🧐 Apache License - Release Audit Tool"
+ run: ./gradlew rat
+ - name: Upload RAT HTML report
+ if: always()
+ uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
+ with:
+ name: rat-report
+ path: build/reports/rat/index.html
+ - name: Publish RAT report in Job Summary
+ if: always()
+ run: |
+ echo "## 📋 Apache RAT Report" >> $GITHUB_STEP_SUMMARY
+ # inject raw HTML (it will render as HTML in the summary)
+ sed -n '/<body[^>]*>/,/<\/body>/ { /<h3>Archives:<\/h3>/,/<\/body>/d; /<body[^>]*>/d; /<\/body>/d; s/^[[:space:]]*//; p; }' build/reports/rat/index.html >> $GITHUB_STEP_SUMMARY
\ No newline at end of file