Update Kotlin and Compose (#1385) #8029
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 | |
on: | |
pull_request: {} | |
push: | |
branches: | |
- '**' | |
tags-ignore: | |
- '**' | |
env: | |
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false" | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ | |
# Migrate back to macOS-latest once 'latest' workflow label is updated (April – June 2024) | |
# https://github.blog/changelog/2024-01-30-github-actions-macos-14-sonoma-is-now-available/ | |
macOS-14, | |
windows-latest, | |
ubuntu-latest | |
] | |
java-version: [17, 18] | |
runs-on: ${{matrix.os}} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: ${{ matrix.java-version }} | |
- name: Setup Gradle | |
uses: gradle/gradle-build-action@v3 | |
- name: Run All Tests | |
run: ./gradlew check | |
- name: Verify Sample Rendering Examples | |
run: ./gradlew sample:verifyPaparazziDebug --tests=RenderingIssuesTest | |
- name: Upload Pixel Data (successes) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pixel-data-${{ matrix.os }}-${{ matrix.java-version }} | |
path: | | |
**/*.pixel.txt | |
- name: Upload Pixel Data (failures) | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pixel-data-${{ matrix.os }}-${{ matrix.java-version }} | |
path: | | |
**/*.pixel.txt | |
- name: Upload Test Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-artifacts-${{ matrix.os }}-${{ matrix.java-version }} | |
path: | | |
**/build/reports/tests/*/ | |
**/build/paparazzi/failures/ | |
paparazzi-gradle-plugin/src/test/projects/**/build/reports/paparazzi/**/images/ | |
paparazzi-gradle-plugin/highlights-*.png | |
- name: Upload Test Failures | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-failures-${{ matrix.os }}-${{ matrix.java-version }} | |
path: | | |
**/build/reports/tests/*/ | |
**/build/paparazzi/failures/ | |
paparazzi-gradle-plugin/src/test/projects/**/build/reports/paparazzi/**/images/ | |
paparazzi-gradle-plugin/highlights-*.png | |
publish: | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/master' | |
needs: | |
- build | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Publish Artifacts | |
run: ./gradlew publishMavenPublicationToMavenCentralRepository paparazzi-gradle-plugin:publishAllPublicationsToMavenCentralRepository --no-parallel | |
env: | |
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_NEXUS_USERNAME }} | |
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_NEXUS_PASSWORD }} | |
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ARTIFACT_SIGNING_PRIVATE_KEY }} | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.8 | |
- name: Prep mkdocs | |
run: .github/workflows/prepare_mkdocs.sh | |
- name: Build mkdocs | |
run: | | |
pip3 install -r .github/workflows/requirements.txt | |
mkdocs build | |
- name: Deploy docs to website | |
if: success() | |
uses: JamesIves/github-pages-deploy-action@releases/v3 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
BRANCH: gh-pages | |
FOLDER: site | |
CLEAN: true |