Skip to content

Licenses information gathering & About screen (closes #41) #57

Licenses information gathering & About screen (closes #41)

Licenses information gathering & About screen (closes #41) #57

Workflow file for this run

name: Build & Test
on:
push:
branches:
- main
paths-ignore:
- 'website/**'
- 'fastlane/**'
- 'assets/**'
- '**/*.md'
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
checks: write
id-token: write
steps:
- uses: actions/checkout@v4
- name: ☕ Setup JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'adopt'
- name: 🐘 Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
add-job-summary-as-pr-comment: on-failure
- name: 🔓 Decrypt secrets
env:
PLAYSTORE_SECRET_PASSPHRASE: ${{ secrets.PLAYSTORE_SECRET_PASSPHRASE }}
run: ./_ci/decrypt_secrets.sh
- name: ©️ Generate credits for ':tasks-app-desktop'
run: |
./gradlew --no-daemon :tasks-app-desktop:exportLibraryDefinitions -PaboutLibraries.exportPath=src/main/resources
stale_credits=$(git diff tasks-app-desktop/src/main/resources/licenses_desktop.json)
# TODO the diff is currently unreliable because
# - generation date is written in Json output (see https://github.com/mikepenz/AboutLibraries/issues/1022)
# - when generated from a given OS, not being the same as on CI, Skiko dependency will be different
# TODO if/once made reliable, would be nice to publish a PR comment to state about the status
if [ -n "${stale_credits}" ]; then ./_ci/generate_github_comment_stale_credits.sh ":tasks-app-desktop" >> "${GITHUB_STEP_SUMMARY}"; fi
- name: 🔨 Build Desktop App 🖥️
run: |
./gradlew --no-daemon :tasks-app-desktop:assemble
- name: ©️ Generate credits for ':tasks-app-android'
run: |
./gradlew --no-daemon :tasks-app-android:exportLibraryDefinitions -PaboutLibraries.exportPath=src/main/assets
stale_credits=$(git diff tasks-app-android/src/main/assets/licenses_android.json)
# TODO the diff is currently unreliable because
# - generation date is written in Json output (see https://github.com/mikepenz/AboutLibraries/issues/1022)
# TODO if/once made reliable, would be nice to publish a PR comment to state about the status
if [ -n "${stale_credits}" ]; then ./_ci/generate_github_comment_stale_credits.sh ":tasks-app-android" >> "${GITHUB_STEP_SUMMARY}"; fi
- name: 🔨 Build Android App 📱
env:
PLAYSTORE_SECRET_PASSPHRASE: ${{ secrets.PLAYSTORE_SECRET_PASSPHRASE }}
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }}
run: |
./gradlew --no-daemon :tasks-app-android:assembleStoreRelease \
-Pci=true \
-Pplaystore.keystore.file="${PWD}/_ci/tasksApp.keystore" \
-Pplaystore.keystore.password="${KEYSTORE_PASSWORD}" \
-Pplaystore.keystore.key_password="${KEYSTORE_KEY_PASSWORD}"
# `test` to trigger as much Jvm tests as possible
# `:tasks-app-android:testStoreReleaseUnitTest` to restrict to only specific flavor(store)+variant(release) for `:tasks-app-android` module.
# `-x :tasks-app-android:test` to remove all tests from `:tasks-app-android` module not being covered by `:tasks-app-android:testStoreReleaseUnitTest`.
# `-x testDebugUnitTest` to avoid triggering tests both in debug & release build.
# `-x :tasks-app-android:build` to avoid triggering useless build tasks (typically for unused flavors).
# Only rely on dependencies of `:tasks-app-android:testStoreReleaseUnitTest`.
- name: ✅ Test
run: |
./gradlew --no-daemon test :tasks-app-android:testStoreReleaseUnitTest \
-x :tasks-app-android:test -x testDebugUnitTest -x :tasks-app-android:build
- name: 🗒️ Publish Test Reports
uses: mikepenz/action-junit-report@v4
if: success() || failure()
with:
report_paths: '**/build/test-results/test/TEST-*.xml'