Skip to content

Merge pull request #265 from usefulness/renovate/google.agp #744

Merge pull request #265 from usefulness/renovate/google.agp

Merge pull request #265 from usefulness/renovate/google.agp #744

Workflow file for this run

name: Build Project
on:
pull_request:
push:
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/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
with:
fetch-depth: 0
- name: Write Gradle build properties to `~/.gradle/gradle.properties`
run: |
mkdir -p ~/.gradle
printf "org.gradle.jvmargs=-Xmx3G -XX:+UseParallelGC\n" >> ~/.gradle/gradle.properties
printf "org.gradle.vfs.watch=false\n" >> ~/.gradle/gradle.properties
shell: bash
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 21
- uses: gradle/actions/setup-gradle@v4
- run: ./gradlew assemble
- run: ./gradlew check
- run: ./gradlew publishToMavenLocal
- run: ./gradlew publishPlugins -m
- run: git diff --exit-code
- uses: actions/upload-artifact@v4
if: ${{ always() }}
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: [ current, release-candidate ]
java: [ 17, 21 ]
include:
- os: ubuntu-latest
gradle: 8.0.2
java: 17
- os: windows-latest
gradle: 8.0.2
java: 17
name: '[${{ matrix.os }}] Gradle: ${{ matrix.gradle }}, Java: ${{ matrix.java }}'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Write Gradle build properties to `~/.gradle/gradle.properties`
run: |
mkdir -p ~/.gradle
printf "org.gradle.jvmargs=-Xmx3G -XX:+UseParallelGC\n" >> ~/.gradle/gradle.properties
printf "org.gradle.vfs.watch=false\n" >> ~/.gradle/gradle.properties
shell: bash
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
- uses: gradle/actions/setup-gradle@v4
with:
gradle-version: ${{ matrix.gradle }}
- run: gradle lintKotlin --continue
continue-on-error: true
working-directory: test-project
- name: Assert fixes
run: |
cd test-project/build/reports/ktlint
grep 'no-empty-class-body' main-lint.txt | grep -q 'EmptyClassBodyClass.kt:3:27'
grep 'op-spacing' test-lint.txt | grep -q 'OpSpacing.kt:5:16'
if [ ${{ matrix.os }} == "windows-latest" ]; then
echo "Windows can't delete files: https://github.com/gradle/gradle/issues/21964"
gradle --stop
fi
shell: bash
- uses: gradle/actions/setup-gradle@v4
with:
gradle-version: ${{ matrix.gradle }}
- run: gradle formatKotlin lintKotlin --stacktrace --no-build-cache
working-directory: test-project
- 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"
integration-tests-android:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
gradle: [ current, release-candidate ]
java: [ 21 ]
agp: [ stable, alpha ]
name: '[android] Gradle: ${{ matrix.gradle }}, Java: ${{ matrix.java }}, AGP: ${{ matrix.agp }}'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Write Gradle build properties to `~/.gradle/gradle.properties`
run: |
mkdir -p ~/.gradle
printf "org.gradle.jvmargs=-Xmx3G -XX:+UseParallelGC\n" >> ~/.gradle/gradle.properties
printf "org.gradle.vfs.watch=false\n" >> ~/.gradle/gradle.properties
shell: bash
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
- id: agp-version-finder
uses: usefulness/agp-version-finder-action@v1
with:
version-to-resolve: ${{ matrix.agp }}
- uses: gradle/actions/setup-gradle@v4
with:
gradle-version: ${{ matrix.gradle }}
- run: gradle lintKotlin -PagpVersion=${{ steps.agp-version-finder.outputs.resolved-version }} --continue
continue-on-error: true
working-directory: test-project-android
- name: Assert fixes
run: |
cd test-project-android/app/build/reports/ktlint
grep 'no-empty-class-body' main-lint.txt | grep -q 'EmptyClassBodyClass.kt:3:27'
grep 'no-empty-class-body' main-lint.txt | grep -q 'EmptyClassBodyInJavaSourcesClass.kt:3:40'
grep 'op-spacing' test-lint.txt | grep -q 'OpSpacing.kt:5:16'
grep 'no-newline-before-return-type' test-lint.txt | grep -q 'CustomRuleTest.kt:4:16'
- uses: gradle/actions/setup-gradle@v4
with:
gradle-version: ${{ matrix.gradle }}
- run: gradle formatKotlin lintKotlin -PagpVersion=${{ steps.agp-version-finder.outputs.resolved-version }} --no-build-cache
working-directory: test-project-android
- 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"