Skip to content

feat: kata/sort-by-last-char #42

feat: kata/sort-by-last-char

feat: kata/sort-by-last-char #42

name: Kata PR Analysis
on:
pull_request:
branches: [ main ]
types: [ opened, reopened, synchronize ]
paths:
- kata/**/*.java
- '!kata/retired/**'
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
analysis:
runs-on: ubuntu-24.04
timeout-minutes: 10
permissions:
contents: write
pull-requests: write
env:
VERSION: 1.26.0
steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- name: Modified projects
id: projects
run: |
CHANGED_FILES=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }})
echo "Changed files: $CHANGED_FILES"
CHANGED_PROJECTS=""
DIRS=""
TASKS=""
for file in $CHANGED_FILES; do
if [[ $file == *.java ]]; then
PROJECT_HOME=$(echo $file | cut -d'/' -f1-3)
RANK=$(basename "$(dirname "$PROJECT_HOME")")
if [[ "$RANK" != "retired" && ! ",$CHANGED_PROJECTS," =~ ",$PROJECT_HOME," ]]; then
CHANGED_PROJECTS="$CHANGED_PROJECTS,$PROJECT_HOME"
DIRS="$DIRS,$PROJECT_HOME/**"
PROJECT_NAME=$(basename "$PROJECT_HOME")
TASKS="$TASKS :$PROJECT_NAME:test :$PROJECT_NAME:jacocoTestReport"
fi
fi
done
echo "dirs=${DIRS#,}" >> $GITHUB_OUTPUT
echo "tasks=${TASKS# }" >> $GITHUB_OUTPUT
- name: Setup Java
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
with:
distribution: temurin
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@94baf225fe0a508e581a564467443d0e2379123b # v4
with:
add-job-summary-as-pr-comment: always
- name: Analyze code quality
run: |
./gradlew ${{ steps.projects.outputs.tasks }} sonar -x processResources -x processTestResources\
--parallel \
--configuration-cache \
--build-cache \
--no-daemon \
--scan \
--no-problems-report \
-Pversion=${{ format('{0}+{1}', env.VERSION, github.RUN_NUMBER) }} \
-Dsonar.token=${{ secrets.SONAR_TOKEN }} \
-Dsonar.organization=${{ secrets.SONAR_KEY }} \
-Dsonar.inclusions=${{ steps.projects.outputs.dirs }} \
-Dsonar.qualitygate.wait=true \
-Dsonar.gradle.skipCompile=true