diff --git a/.github/workflows/build_benchmark.yml b/.github/workflows/build_benchmark.yml index 77ee6b5e52..fd60ef64e2 100644 --- a/.github/workflows/build_benchmark.yml +++ b/.github/workflows/build_benchmark.yml @@ -1,4 +1,6 @@ name: Benchmark Builder +# Manually build a dev banchmark + on: # Dispatch or Manual triggers workflow_dispatch: @@ -30,12 +32,12 @@ jobs: echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT - name: Clone Repository (${{ steps.get_tag.outputs.VERSION_TAG }}) - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 - name: Validate Gradle Wrapper - uses: gradle/actions/wrapper-validation@d9336dac04dea2507a617466bc058a3def92b18b # v3 + uses: gradle/actions/wrapper-validation@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 - name: Prepare env id: prepare_env @@ -62,47 +64,28 @@ jobs: needs: prepare-build steps: - name: Clone Repository (${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}) - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 - - name: Set up gradle - uses: gradle/actions/setup-gradle@d9336dac04dea2507a617466bc058a3def92b18b # v3 - - name: Setup Android SDK run: | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3" - name: Set up JDK - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 + uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 with: java-version: 17 distribution: temurin - - - name: Write google-services.json - uses: DamianReeves/write-file-action@6929a9a6d1807689191dcc8bbe62b54d70a32b42 # v1.3 - with: - path: app/google-services.json - contents: ${{ secrets.GOOGLE_SERVICES_JSON }} - write-mode: overwrite - - name: Write client_secrets.json - uses: DamianReeves/write-file-action@6929a9a6d1807689191dcc8bbe62b54d70a32b42 # v1.3 - with: - path: app/src/main/assets/client_secrets.json - contents: ${{ secrets.GOOGLE_CLIENT_SECRETS_JSON }} - write-mode: overwrite - - # - name: Build app and run unit tests - # uses: gradle/gradle-command-action@v2 - # with: - # arguments: detekt assembleDevBenchmark testDevBenchmarkUnitTest + - name: Set up gradle + uses: gradle/actions/setup-gradle@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 - name: Build Benchmark app and run unit tests - run: ./gradlew assembleDevBenchmark testDevBenchmarkUnitTest --stacktrace + run: ./gradlew assembleDevBenchmark testDevBenchmarkUnitTest testReleaseUnitTest --stacktrace - name: Upload artifacts - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 with: path: "**/*.apk" retention-days: 1 @@ -114,7 +97,7 @@ jobs: - build-app steps: - name: Download artifacts - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4 + uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 with: merge-multiple: true diff --git a/.github/workflows/build_check.yml b/.github/workflows/build_check.yml index 8ba4d2d004..420d2cf376 100644 --- a/.github/workflows/build_check.yml +++ b/.github/workflows/build_check.yml @@ -1,10 +1,14 @@ name: CI on: -# push: -# branches: -# - develop -# paths-ignore: -# - '**.md' + push: + branches: + - develop + - master + paths-ignore: + - '**.md' + # pull_request: + # paths-ignore: + # - '**.md' # Dispatch or Manual triggers workflow_dispatch: @@ -12,6 +16,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permissions: + contents: read + jobs: build: name: Build app @@ -19,26 +26,54 @@ jobs: steps: - name: Clone repo - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Validate Gradle Wrapper - uses: gradle/actions/wrapper-validation@d9336dac04dea2507a617466bc058a3def92b18b # v3 + uses: gradle/actions/wrapper-validation@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 + + - name: Setup Android SDK + run: | + ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3" - name: Set up JDK - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 + uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 with: java-version: 17 - distribution: adopt + distribution: temurin + + - name: Write google-services.json + uses: DamianReeves/write-file-action@6929a9a6d1807689191dcc8bbe62b54d70a32b42 # v1.3 + with: + path: app/google-services.json + contents: ${{ secrets.GOOGLE_SERVICES_JSON }} + write-mode: overwrite + + - name: Write client_secrets.json + uses: DamianReeves/write-file-action@6929a9a6d1807689191dcc8bbe62b54d70a32b42 # v1.3 + with: + path: app/src/main/assets/client_secrets.json + contents: ${{ secrets.GOOGLE_CLIENT_SECRETS_JSON }} + write-mode: overwrite - name: Set up gradle - uses: gradle/actions/setup-gradle@d9336dac04dea2507a617466bc058a3def92b18b # v3 + uses: gradle/actions/setup-gradle@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 - - name: Build app - run: ./gradlew assembleDevPreview testDevPreviewUnitTest --stacktrace + - name: Build app and run unit tests + run: ./gradlew assembleStandardPreview testStandardPreviewUnitTest testReleaseUnitTest --stacktrace + + - name: Sign APK + uses: r0adkll/sign-android-release@349ebdef58775b1e0d8099458af0816dc79b6407 # v1 + with: + releaseDirectory: app/build/outputs/apk/standard/preview + signingKeyBase64: ${{ secrets.SIGNING_KEY }} + alias: ${{ secrets.ALIAS }} + keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} + keyPassword: ${{ secrets.KEY_PASSWORD }} - name: Upload APK - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + if: github.event_name != 'pull_request' + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 with: name: Komikku-${{ github.sha }}.apk - path: app/build/outputs/apk/dev/preview/app-dev-universal-preview.apk + path: app/build/outputs/apk/standard/preview/app-standard-universal-preview-signed.apk retention-days: 1 diff --git a/.github/workflows/build_push_preview.yml b/.github/workflows/build_dispatch_preview.yml similarity index 76% rename from .github/workflows/build_push_preview.yml rename to .github/workflows/build_dispatch_preview.yml index 84c7243ea1..65fc554c3e 100644 --- a/.github/workflows/build_push_preview.yml +++ b/.github/workflows/build_dispatch_preview.yml @@ -1,24 +1,25 @@ name: Remote Dispatch Preview Build - +# Manually send a dispatch to build standard preview (master) or dev preview (other refs) + on: # Dispatch or Manual triggers workflow_dispatch: - push: - branches: - - master - # - develop - paths: - - '**' - - '!**.md' - - '!.github/**' - - '.github/scripts/**' - - '.github/workflows/**' +# push: +# branches: +# - master +# # - develop +# paths: +# - '**' +# - '!**.md' +# - '!.github/**' +# - '.github/scripts/**' +# - '.github/workflows/**' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true - + jobs: trigger_preview_build: name: Trigger preview build @@ -26,12 +27,12 @@ jobs: steps: - name: Clone repo - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 - name: Validate Gradle Wrapper - uses: gradle/wrapper-validation-action@26ffd686eccbbcbf168186b5363c8ee8edbe39f6 # v3 + uses: gradle/actions/wrapper-validation@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 - name: Prepare build id: prepare_build @@ -49,10 +50,10 @@ jobs: - name: Get branch names id: branch_names - uses: tj-actions/branch-names@6871f53176ad61624f978536bbf089c574dc19a2 # v8 + uses: tj-actions/branch-names@6871f53176ad61624f978536bbf089c574dc19a2 # v8.0.1 - name: Invoke workflow in preview repo - uses: benc-uk/workflow-dispatch@25b02cc069be46d637e8fe2f1e8484008e9e9609 # v1 + uses: benc-uk/workflow-dispatch@25b02cc069be46d637e8fe2f1e8484008e9e9609 # v1.2.3 with: workflow: build_app.yml repo: komikku-app/komikku-preview diff --git a/.github/workflows/build_preview.yml b/.github/workflows/build_preview.yml index 3e25350563..481839c98c 100644 --- a/.github/workflows/build_preview.yml +++ b/.github/workflows/build_preview.yml @@ -1,4 +1,5 @@ name: Preview Builder +# Manually build a standard preview on: # Dispatch or Manual triggers @@ -37,12 +38,12 @@ jobs: echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT - name: Clone Repository (${{ steps.get_tag.outputs.VERSION_TAG }}) - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 - name: Validate Gradle Wrapper - uses: gradle/actions/wrapper-validation@d9336dac04dea2507a617466bc058a3def92b18b # v3 + uses: gradle/actions/wrapper-validation@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 - name: Prepare env id: prepare_env @@ -69,19 +70,16 @@ jobs: needs: prepare-build steps: - name: Clone Repository (${{ needs.prepare-build.outputs.TAG_PREFIX }}${{ needs.prepare-build.outputs.COMMIT_COUNT }}) - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 - - name: Set up gradle - uses: gradle/actions/setup-gradle@d9336dac04dea2507a617466bc058a3def92b18b # v3 - - name: Setup Android SDK run: | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3" - name: Set up JDK - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 + uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 with: java-version: 17 distribution: temurin @@ -100,16 +98,14 @@ jobs: contents: ${{ secrets.GOOGLE_CLIENT_SECRETS_JSON }} write-mode: overwrite - # - name: Build app and run unit tests - # uses: gradle/gradle-command-action@v2 - # with: - # arguments: detekt assembleStandardPreview testStandardPreviewUnitTest + - name: Set up gradle + uses: gradle/actions/setup-gradle@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 - name: Build Preview app and run unit tests - run: ./gradlew assembleStandardPreview testStandardPreviewUnitTest --stacktrace + run: ./gradlew assembleStandardPreview testStandardPreviewUnitTest testReleaseUnitTest --stacktrace - name: Upload artifacts - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 with: path: "**/*.apk" retention-days: 1 @@ -121,7 +117,7 @@ jobs: - build-app steps: - name: Download artifacts - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4 + uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 with: merge-multiple: true diff --git a/.github/workflows/build_pull_request.yml b/.github/workflows/build_pull_request.yml index f0947be26a..442ac4b7e8 100644 --- a/.github/workflows/build_pull_request.yml +++ b/.github/workflows/build_pull_request.yml @@ -1,10 +1,15 @@ name: PR build check on: + # push: + # branches: + # - develop + # paths-ignore: + # - '**.md' pull_request: paths-ignore: - '**.md' - - 'i18n/src/commonMain/resources/**/strings.xml' - - 'i18n/src/commonMain/resources/**/plurals.xml' + # Dispatch or Manual triggers + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number }} @@ -23,20 +28,37 @@ jobs: uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Validate Gradle Wrapper - uses: gradle/wrapper-validation-action@26ffd686eccbbcbf168186b5363c8ee8edbe39f6 # v3.4.0 + uses: gradle/actions/wrapper-validation@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 - name: Dependency Review uses: actions/dependency-review-action@72eb03d02c7872a771aacd928f3123ac62ad6d3a # v4.3.3 + - name: Setup Android SDK + run: | + ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3" + - name: Set up JDK uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 with: java-version: 17 - distribution: adopt + distribution: temurin + + - name: Write google-services.json + uses: DamianReeves/write-file-action@6929a9a6d1807689191dcc8bbe62b54d70a32b42 # v1.3 + with: + path: app/google-services.json + contents: ${{ secrets.GOOGLE_SERVICES_JSON }} + write-mode: overwrite + + - name: Write client_secrets.json + uses: DamianReeves/write-file-action@6929a9a6d1807689191dcc8bbe62b54d70a32b42 # v1.3 + with: + path: app/src/main/assets/client_secrets.json + contents: ${{ secrets.GOOGLE_CLIENT_SECRETS_JSON }} + write-mode: overwrite - name: Set up gradle - uses: gradle/actions/setup-gradle@d9336dac04dea2507a617466bc058a3def92b18b # v3.4.0 + uses: gradle/actions/setup-gradle@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 - name: Build app and run unit tests - # run: ./gradlew detekt assembleStandardRelease testReleaseUnitTest - run: ./gradlew assembleDevPreview testDevPreviewUnitTest --stacktrace + run: ./gradlew assembleStandardPreview testStandardPreviewUnitTest testReleaseUnitTest --stacktrace diff --git a/.github/workflows/build_push.yml b/.github/workflows/build_release.yml similarity index 92% rename from .github/workflows/build_push.yml rename to .github/workflows/build_release.yml index fc99d890fc..519368b821 100644 --- a/.github/workflows/build_push.yml +++ b/.github/workflows/build_release.yml @@ -1,4 +1,6 @@ name: Release Builder +# Build a stable release on a tag newly pushed + on: push: tags: @@ -25,22 +27,19 @@ jobs: echo "VERSION_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT - name: Clone Repository (${{ steps.get_tag.outputs.VERSION_TAG }}) - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: fetch-depth: 0 - name: Validate Gradle Wrapper - uses: gradle/actions/wrapper-validation@d9336dac04dea2507a617466bc058a3def92b18b # v3 - - - name: Set up gradle - uses: gradle/actions/setup-gradle@d9336dac04dea2507a617466bc058a3def92b18b # v3 + uses: gradle/actions/wrapper-validation@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 - name: Setup Android SDK run: | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3" - name: Set up JDK - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 + uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 with: java-version: 17 distribution: temurin @@ -59,16 +58,14 @@ jobs: contents: ${{ secrets.GOOGLE_CLIENT_SECRETS_JSON }} write-mode: overwrite - # - name: Build app and run unit tests - # uses: gradle/gradle-command-action@v2 - # with: - # arguments: detekt assembleStandardRelease testStandardReleaseUnitTest + - name: Set up gradle + uses: gradle/actions/setup-gradle@31ae3562f68c96d481c31bc1a8a55cc1be162f83 # v3.4.1 - name: Build app and run unit tests - run: ./gradlew assembleStandardRelease testStandardReleaseUnitTest --stacktrace + run: ./gradlew assembleStandardRelease testStandardReleaseUnitTest testReleaseUnitTest --stacktrace - name: Upload artifacts - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 with: path: "**/*.apk" retention-days: 1 @@ -79,7 +76,7 @@ jobs: - build-app steps: - name: Download artifacts - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4 + uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 with: merge-multiple: true diff --git a/renovate.json b/renovate.json index 3df3816a83..ae54b75465 100644 --- a/renovate.json +++ b/renovate.json @@ -1,6 +1,6 @@ { "baseBranches": [ - "develop" + "master" ], "rebaseWhen": "conflicted", "labels": [