Licenses information gathering & About screen (closes #41) #54
Workflow file for this run
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 & 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 🖥️ | |
id: desktop_app_build | |
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 📱 | |
id: android_app_build | |
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' |