Skip to content

Forcing release to true #37

Forcing release to true

Forcing release to true #37

Workflow file for this run

name: Gradle Build, Tests and Publish
on:
push:
branches: [ "main", "ullrich/publish-via-ci" ]
pull_request:
jobs:
gradle:
runs-on: ubuntu-latest
permissions:
checks: write
pull-requests: write
contents: write
needs: changeset-on-main
steps:
# Setup
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Install Gradle Wrapper
run: ./gradlew wrapper
- name: Adding Google Services
env:
DATA: ${{ secrets.GOOGLE_SERVICES }}
run: echo $DATA | base64 -di > ./example/google-services.json
- name: Build, Test and Lint with Gradle Wrapper
run: ./gradlew build test lint
- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: success() || failure() # always run even if the previous step fails
with:
report_paths: '**/build/test-results/test*/TEST-*.xml'
comment: true
- name: Publish Lint Report
uses: yutailang0119/action-android-lint@v4
if: success() || failure() # always run even if the previous step fails
with:
report-path: '**/build/reports/lint-results-*.xml'
ignore-warnings: false
continue-on-error: false # If annotations contain error of severity, action-android-lint exit 1.
# Publish
## Publishing depends on the Changesets workflow. Only if changesets published a release,
## we also run the jobs to push the resulting artifacts to Maven
- name: Publish to Maven Local
if: ${{ needs.changeset-on-main.outputs.published == 'true' }}
run: ./gradlew -xtest -xlint assemble publishToMavenLocal
- name: Setup Keyring
if: ${{ needs.changeset-on-main.outputs.published == 'true' }}
id: keyring
env:
KEYRING_FILE: "~/publish-keyring.gpg"
DATA: ${{ secrets.SIGNING_KEYRING }}
run: |
echo $DATA | base64 -di > "$KEYRING_FILE"
echo "keyringFile=$KEYRING_FILE" >> "$GITHUB_OUTPUT"
- name: Publish to Maven
if: ${{ needs.changeset-on-main.outputs.published == 'true' }}
run: |
./gradlew -xtest -xlint assemble publish \
-Psigning.keyId=${{ secrets.SIGNING_KEYID }} \
-Psigning.password=${{ secrets.SIGNING_PASSWORD }} \
-Psigning.secretKeyRingFile=${{ steps.keyring.outputs.keyringFile }} \
-PNEXUS_USERNAME=${{ secrets.NEXUS_USERNAME }} \
-PNEXUS_PASSWORD=${{ secrets.NEXUS_PASSWORD }}
# Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies.
# See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md
- name: Generate and submit dependency graph
if: ${{ needs.changeset-on-main.outputs.published == 'true' }}
uses: gradle/actions/dependency-submission@v4
## -- Release Jobs
changeset-on-main:
uses: ./.github/workflows/changeset.yml
secrets:
BELLA_ACTION_TOKEN: ${{ secrets.BELLA_ACTION_TOKEN }}