Bump org.jetbrains.dokka:kotlin-as-java-plugin from 1.9.20 to 2.0.0 #824
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Analyze, Build and Deploy | |
on: | |
pull_request: | |
types: [opened, synchronize, ready_for_review] | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
env: | |
JDK_VERSION: 17 | |
jobs: | |
safety-check: | |
name: Check for modified Gradle | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Validate Gradle artifacts | |
uses: gradle/actions/wrapper-validation@v4 | |
compile: | |
name: Compile Kotlin code | |
needs: safety-check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Required for version number generation | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ env.JDK_VERSION }} | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Compile Kotlin | |
run: ./gradlew assemble | |
discover-projects: | |
name: Discover Gradle Projects | |
needs: compile | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Required for version number generation | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ env.JDK_VERSION }} | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Discover Projects and save into matrix | |
run: | | |
./gradlew projects --quiet | grep "Project ':" | awk -F"'" '{print $2}' | sed 's/^://' > projects.txt | |
projects=$(cat projects.txt | sed '/^$/d' | awk '{print "\""$0"\""}' | paste -sd "," - | sed 's/^/[/' | sed 's/$/]/') | |
echo "matrix=${projects}" >> $GITHUB_OUTPUT | |
echo ${projects} >> $GITHUB_STEP_SUMMARY | |
id: set-matrix | |
detekt: | |
name: Generate Detekt report (${{ matrix.project }}) | |
needs: discover-projects | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
project: ${{ fromJson(needs.discover-projects.outputs.matrix) }} # Get gradle projects from previous step | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Required for version number generation | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ env.JDK_VERSION }} | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Detekt | |
run: ./gradlew :${{ matrix.project }}:detekt | |
- name: Collect result | |
shell: sh | |
run: > | |
mkdir sarif && | |
find * -name detekt.sarif -print0 | | |
xargs -n1 -0 bash -c 'cp "$1" "sarif/${1//\//-}"' '{}' | |
- name: Upload SARIF file | |
uses: github/codeql-action/upload-sarif@v3 | |
with: | |
sarif_file: ./sarif/${{ matrix.project }}-build-reports-detekt-detekt.sarif | |
category: ${{ matrix.project }} | |
platform-test: | |
name: Run JUnit tests (${{ matrix.project }} on ${{ matrix.os }}) | |
needs: discover-projects | |
strategy: | |
matrix: | |
project: ${{ fromJson(needs.discover-projects.outputs.matrix) }} # Get gradle projects from previous step | |
os: [ ubuntu-latest, macos-latest, windows-latest ] # Ubuntu is tested in "test" job | |
fail-fast: false # Ensure we get all failures on other platforms | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Required for version number generation | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ env.JDK_VERSION }} | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run tests | |
run: ./gradlew :${{ matrix.project }}:test | |
- name: Upload test results | |
uses: mikepenz/action-junit-report@v4 | |
if: ${{ !cancelled() }} # Must execute after failed tests | |
with: | |
report_paths: '**/build/test-results/test/TEST-*.xml' | |
reproduction: | |
name: Trigger reproduction check | |
needs: compile | |
runs-on: ubuntu-latest | |
steps: | |
- name: Trigger GitLab | |
run: | | |
curl -X POST \ | |
--fail \ | |
-F token=$REPRODUCTION_RUNNER_TRIGGER_TOKEN \ | |
-F ref=main \ | |
-F variables[TARGET_BRANCH]=${{ github.head_ref || github.ref_name }} \ | |
-F variables[IS_DRAFT]=${{ github.event.pull_request.draft || false }} \ | |
-F variables[TARGET_SHA]=${{ github.event.pull_request.head.sha || github.sha }} \ | |
-s -o /dev/null \ | |
$REPRODUCTION_RUNNER_URL | |
env: | |
REPRODUCTION_RUNNER_TRIGGER_TOKEN: ${{ secrets.REPRODUCTION_RUNNER_TRIGGER_TOKEN }} | |
REPRODUCTION_RUNNER_URL: ${{ secrets.REPRODUCTION_RUNNER_URL }} | |
spotless: | |
name: Run Spotless (${{ matrix.project }}) | |
needs: discover-projects | |
strategy: | |
matrix: | |
project: ${{ fromJson(needs.discover-projects.outputs.matrix) }} # Get gradle projects from previous step | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initial Setup | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Required for version number generation & diff generation | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ env.JDK_VERSION }} | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v4 | |
- name: Run Spotless checks | |
id: spotlessCheck | |
run: ./gradlew :${{ matrix.project }}:spotlessCheck | |
- name: Apply Spotless fixes | |
if: ${{ failure() }} | |
run: ./gradlew :${{ matrix.project }}:spotlessApply | |
- name: Generate diff | |
if: ${{ failure() }} | |
shell: sh | |
run: | | |
echo "# Spotless violations" >> $GITHUB_STEP_SUMMARY | |
echo "```diff" >> $GITHUB_STEP_SUMMARY | |
git diff >> $GITHUB_STEP_SUMMARY | |
echo "```" >> $GITHUB_STEP_SUMMARY |