Sign Maven publications only when signing key is configured. #300
This file contains hidden or 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: [ push, pull_request ] | |
| env: | |
| GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false" | |
| jobs: | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v2 | |
| - name: Validate Gradle Wrapper | |
| uses: gradle/actions/wrapper-validation@v4 | |
| - name: Configure JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Build lightsaber modules | |
| run: ./gradlew -p lightsaber check -Plightsaber.shadow.enabled=true | |
| - name: Publish bootstrap artifacts | |
| run: ./gradlew -p lightsaber publishToMavenLocal -Plightsaber.shadow.enabled=true | |
| - name: Run functional tests | |
| run: ./gradlew -p lightsaber functionalTest -Plightsaber.shadow.enabled=true | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() | |
| with: | |
| name: functional-test-report | |
| path: lightsaber/build/reports/tests/functionalTest | |
| - name: Run unit tests | |
| run: ./gradlew check -Pdevelopment=false -Dorg.gradle.unsafe.configuration-cache=true --stacktrace | |
| test: | |
| name: Test | |
| runs-on: macos-latest | |
| strategy: | |
| matrix: | |
| api-level: [ 21, 29 ] | |
| target: [ default ] | |
| arch: [ x86_64 ] | |
| needs: | |
| - build | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v2 | |
| - name: Configure JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Publish bootstrap artifacts | |
| run: ./gradlew -p lightsaber publishToMavenLocal -Plightsaber.shadow.enabled=true -Pdevelopment=false | |
| - name: Run integration tests | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: ${{ matrix.api-level }} | |
| target: ${{ matrix.target }} | |
| arch: ${{ matrix.arch }} | |
| script: ./gradlew connectedCheck -Dorg.gradle.unsafe.configuration-cache=true -Pdevelopment=false | |
| publish: | |
| name: Publish | |
| runs-on: ubuntu-latest | |
| if: contains(github.ref, '/tags/v') | |
| needs: | |
| - build | |
| - test | |
| env: | |
| ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_USERNAME }} | |
| ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_PASSWORD }} | |
| ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }} | |
| ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }} | |
| ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_SECRET_KEY }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v2 | |
| - name: Configure JDK | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Publish to Maven Central | |
| run: ./gradlew -p lightsaber publishAndReleaseToMavenCentral -Plightsaber.shadow.enabled=true -Pdevelopment=false |