Skip to content

Load ktlint dependency always when Kotlinter applied (#425) #378

Load ktlint dependency always when Kotlinter applied (#425)

Load ktlint dependency always when Kotlinter applied (#425) #378

Workflow file for this run

name: Build Project
on:
pull_request:
push:
branches:
- master
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
name: '[${{ matrix.os }}] build plugin'
steps:
- uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 21
- name: Gradle wrapper validation
uses: gradle/wrapper-validation-action@v3
- name: ./gradlew assemble
uses: gradle/gradle-build-action@v3
with:
arguments: assemble
- name: ./gradlew check
uses: gradle/gradle-build-action@v3
with:
arguments: check
- name: Upload test results
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.os }}
path: "${{ github.workspace }}/**/build/reports/tests"
integration-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
gradle: [ 8.4, current, release-candidate ]
java: [ 11, 17, 21 ]
name: '[${{ matrix.os }}] Gradle: ${{ matrix.gradle }}, Java: ${{ matrix.java }}'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: ${{ matrix.java }}
- uses: gradle/gradle-build-action@v3
with:
build-root-directory: test-project
gradle-version: ${{ matrix.gradle }}
arguments: formatKotlin lintKotlin
- name: Assert fixes
run: |
cd test-project/service/build/reports/ktlint
grep 'kotlinter-test-rules:no-var' main-lint.txt | grep -q 'CustomNoVar.kt:4:5'
grep 'op-spacing' test-format.txt | grep -q 'OpSpacing.kt:5:16'
- name: Upload reports
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: "test-project-reports-${{ matrix.os }}-${{ matrix.gradle }}-${{ matrix.java }}"
path: "${{ github.workspace }}/**/build/reports/ktlint"
provide-agp-version-matrix:
runs-on: ubuntu-latest
outputs:
agp-versions: ${{ steps.build-agp-matrix.outputs.agp-versions }}
steps:
- id: agp-version-finder
uses: usefulness/agp-version-finder-action@v1
- id: build-agp-matrix
run: |
if [[ ${{ github.event_name }} == 'pull_request' ]]; then
echo 'agp-versions=["${{ steps.agp-version-finder.outputs.latest-stable }}"]' >> $GITHUB_OUTPUT
else
echo 'agp-versions=["${{ steps.agp-version-finder.outputs.latest-stable }}", "${{ steps.agp-version-finder.outputs.latest-alpha }}"]' >> $GITHUB_OUTPUT
fi
integration-tests-android:
runs-on: ubuntu-latest
needs:
- provide-agp-version-matrix
strategy:
fail-fast: false
matrix:
gradle: [ current ]
java: [ 21 ]
agp: ${{ fromJSON(needs.provide-agp-version-matrix.outputs.agp-versions) }}
name: '[android] Gradle: ${{ matrix.gradle }}, Java: ${{ matrix.java }}, AGP: ${{ matrix.agp }}'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: ${{ matrix.java }}
- uses: gradle/gradle-build-action@v3
with:
build-root-directory: test-project-android
gradle-version: ${{ matrix.gradle }}
arguments: formatKotlin lintKotlin -PagpVersion=${{ matrix.agp }}
- name: Assert fixes
run: |
cd test-project-android/build/reports/ktlint
grep 'no-empty-class-body' main-format.txt | grep -q 'EmptyClassBodyClass.kt:3:27'
grep 'no-empty-class-body' main-format.txt | grep -q 'EmptyClassBodyInJavaSourcesClass.kt:3:40'
grep 'op-spacing' test-format.txt | grep -q 'OpSpacing.kt:5:16'
- name: Upload reports
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: "test-project-android-reports-${{ matrix.gradle }}-${{ matrix.java }}-${{ matrix.agp }}"
path: "${{ github.workspace }}/**/build/reports/ktlint"