Merge pull request #515 from usefulness/renovate/com.project.starter-… #1430
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: Build project | |
on: | |
pull_request: | |
branches: | |
- master | |
push: | |
branches: | |
- master | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: 20 | |
- name: Write Gradle build properties to `~/.gradle/gradle.properties` | |
run: | | |
mkdir -p ~/.gradle | |
printf "org.gradle.jvmargs=-Xmx3G -XX:+UseParallelGC\n" >> ~/.gradle/gradle.properties | |
shell: bash | |
- uses: gradle/gradle-build-action@v2 | |
- run: ./gradlew projectCodestyle | |
- run: ./gradlew assemble | |
- run: ./gradlew check | |
- run: ./gradlew projectCoverage | |
- uses: codecov/codecov-action@v3 | |
- name: Upload test results | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: test-results | |
path: "${{ github.workspace }}/**/build/reports/tests" | |
- name: Upload jacoco report | |
uses: actions/upload-artifact@v3 | |
with: | |
name: jacoco-report | |
path: "${{ github.workspace }}/**/build/reports/jacoco" | |
- run: ./gradlew publishToMavenLocal | |
- run: ./gradlew publishPlugins -m | |
- run: git diff --exit-code | |
- name: Publish to Github Package Registry | |
run: ./gradlew publish --continue | |
if: github.repository == 'usefulness/easylauncher-gradle-plugin' && github.event_name == 'push' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
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: echo 'agp-versions=["${{ steps.agp-version-finder.outputs.latest-stable }}", "${{ steps.agp-version-finder.outputs.latest-beta }}", "${{ steps.agp-version-finder.outputs.latest-alpha }}"]' >> $GITHUB_OUTPUT | |
build-all-sample-apps: | |
runs-on: ubuntu-latest | |
needs: | |
- provide-agp-version-matrix | |
strategy: | |
fail-fast: false | |
matrix: | |
javaVersion: [ 17, 20 ] | |
gradle: [ release-candidate ] | |
agp: ${{ fromJSON(needs.provide-agp-version-matrix.outputs.agp-versions) }} | |
include: | |
- javaVersion: 11 | |
gradle: 7.5 | |
agp: 7.4.1 | |
- javaVersion: 17 | |
gradle: current | |
agp: 7.4.1 | |
- javaVersion: 19 | |
gradle: current | |
agp: 7.4.1 | |
name: Run Gradle-${{ matrix.gradle }}, AGP-${{ matrix.agp }}, Java-${{ matrix.javaVersion }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.javaVersion }} | |
- name: Write Gradle build properties to `~/.gradle/gradle.properties` | |
run: | | |
mkdir -p ~/.gradle | |
printf "org.gradle.jvmargs=-Xmx3G -XX:+UseParallelGC\n" >> ~/.gradle/gradle.properties | |
shell: bash | |
- uses: android-actions/setup-android@v2 | |
- uses: gradle/gradle-build-action@v2 | |
- name: Pre-compile plugin | |
run: ./gradlew publishToMavenLocal -Pgroup=com.project.starter.local | |
- uses: gradle/gradle-build-action@v2 | |
with: | |
build-root-directory: sample | |
gradle-version: ${{ matrix.gradle }} | |
arguments: assemble lint -PuseMavenLocal -PagpVersion=${{ matrix.agp }} | |
build-sample-apps-with-configuration-cache: | |
runs-on: ${{ matrix.os }} | |
name: Configuration Cache Java-${{ matrix.javaVersion }} OS-${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
javaVersion: [ 17, 20 ] | |
os: [ ubuntu-latest, windows-latest, macos-latest ] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.javaVersion }} | |
- name: Write Gradle build properties to `~/.gradle/gradle.properties` | |
run: | | |
mkdir -p ~/.gradle | |
printf "org.gradle.jvmargs=-Xmx3G -XX:+UseParallelGC\n" >> ~/.gradle/gradle.properties | |
shell: bash | |
- uses: gradle/gradle-build-action@v2 | |
with: | |
build-root-directory: sample | |
gradle-version: current | |
arguments: assembleDebug --configuration-cache | |
icons-test: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
apiVersion: [ 28 ] | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: 20 | |
- name: Write Gradle build properties to `~/.gradle/gradle.properties` | |
run: | | |
mkdir -p ~/.gradle | |
printf "org.gradle.jvmargs=-Xmx3G -XX:+UseParallelGC\n" >> ~/.gradle/gradle.properties | |
shell: bash | |
- uses: gradle/gradle-build-action@v2 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version-file: '.python-version' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install 'Pillow==9.1.1' | |
- name: run tests | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ matrix.apiVersion }} | |
profile: pixel_xl | |
target: google_apis | |
arch: x86 | |
disable-spellchecker: true | |
working-directory: ./sample | |
script: ./icon_check.sh | |
- name: Upload failed screenshots | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: failedScreenshots | |
path: "${{ github.workspace }}/**/build/failedScreenshots" | |
- name: Upload screenshot tests result | |
uses: actions/upload-artifact@v3 | |
with: | |
name: screenshots | |
path: "${{ github.workspace }}/**/build/*AndroidTest/" |