From 6c76b3bde5ff5d6eef9255ddf905dd499afe63bf Mon Sep 17 00:00:00 2001 From: "Cuong M. Tran" Date: Mon, 17 Jun 2024 15:46:01 +0700 Subject: [PATCH] Update workflow --- .github/workflows/build_benchmark.yml | 38 ++++--------- .github/workflows/build_check.yml | 44 --------------- ...preview.yml => build_dispatch_preview.yml} | 33 +++++------ .github/workflows/build_preview.yml | 23 ++++---- .github/workflows/build_pull_request.yml | 55 ++++++++++++++++--- .../{build_push.yml => build_release.yml} | 22 ++++---- renovate.json | 2 +- 7 files changed, 99 insertions(+), 118 deletions(-) delete mode 100644 .github/workflows/build_check.yml rename .github/workflows/{build_push_preview.yml => build_dispatch_preview.yml} (76%) rename .github/workflows/{build_push.yml => build_release.yml} (92%) diff --git a/.github/workflows/build_benchmark.yml b/.github/workflows/build_benchmark.yml index 77ee6b5e52..6b4ccb07b2 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,31 @@ 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: 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 + 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 - 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 +100,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 deleted file mode 100644 index 8ba4d2d004..0000000000 --- a/.github/workflows/build_check.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: CI -on: -# push: -# branches: -# - develop -# paths-ignore: -# - '**.md' - # Dispatch or Manual triggers - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build: - name: Build app - runs-on: ubuntu-latest - - steps: - - name: Clone repo - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 - - - name: Validate Gradle Wrapper - uses: gradle/actions/wrapper-validation@d9336dac04dea2507a617466bc058a3def92b18b # v3 - - - name: Set up JDK - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 - with: - java-version: 17 - distribution: adopt - - - name: Set up gradle - uses: gradle/actions/setup-gradle@d9336dac04dea2507a617466bc058a3def92b18b # v3 - - - name: Build app - run: ./gradlew assembleDevPreview testDevPreviewUnitTest --stacktrace - - - name: Upload APK - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 - with: - name: Komikku-${{ github.sha }}.apk - path: app/build/outputs/apk/dev/preview/app-dev-universal-preview.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..6c1b5d30f1 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,19 @@ 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: 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 + uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 with: java-version: 17 distribution: temurin @@ -100,16 +101,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 - 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 +120,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..7067e85a5b 100644 --- a/.github/workflows/build_pull_request.yml +++ b/.github/workflows/build_pull_request.yml @@ -1,13 +1,18 @@ 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 }} + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.pull_request.number }} cancel-in-progress: true permissions: @@ -23,20 +28,54 @@ 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 --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 + 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/standard/preview/app-standard-universal-preview-signed.apk + retention-days: 1 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..7323306289 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,22 @@ 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: Set up gradle - uses: gradle/actions/setup-gradle@d9336dac04dea2507a617466bc058a3def92b18b # v3 + - 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 + uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 with: java-version: 17 distribution: temurin @@ -59,16 +61,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 - 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 +79,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": [