From e2f2b4ed0699cc96c88de89495e2fc6ac7b23d1c Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 16:43:45 +0200 Subject: [PATCH 01/25] =?UTF-8?q?=F0=9F=91=B7=20Simplify=20artifact=20up?= =?UTF-8?q?=20and=20downloading?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- .github/workflows/workflow-build.yml | 95 ++++++---------------------- 1 file changed, 20 insertions(+), 75 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 3362821..1af0e67 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -163,86 +163,39 @@ jobs: if: inputs['build-type'] == 'size-analysis' run: flutter build apk ${{ steps.build_options.outputs.build_args }} --analyze-size --target-platform android-arm64 - - name: Rename build artifacts - run: | - mkdir -p "$GITHUB_WORKSPACE/build-artifacts" - for apk in build/app/outputs/flutter-apk/*.apk; do - [ -f "$apk" ] || continue - filename=$(basename "$apk") - case "$filename" in - *arm64-v8a*) abi=arm64-v8a ;; - *armeabi-v7a*) abi=armeabi-v7a ;; - *x86_64*) abi=x86_64 ;; - *) abi=universal ;; - esac - mv "$apk" "$GITHUB_WORKSPACE/build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_${abi}.apk" || true - done - mv build/app/outputs/bundle/${{ steps.build_options.outputs.flavor }}Release/app-${{ steps.build_options.outputs.flavor }}-release.aab "$GITHUB_WORKSPACE/build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}.aab" - mv build/app/symbols "$GITHUB_WORKSPACE/build-artifacts/symbols" - - - name: Check arm64 apk - id: check_arm64 - run: | - if [ -f "$GITHUB_WORKSPACE/build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_arm64-v8a.apk" ]; then - echo "found=true" >> "$GITHUB_OUTPUT" - else - echo "found=false" >> "$GITHUB_OUTPUT" - fi - - name: Upload APK arm64-v8a - if: steps.check_arm64.outputs.found == 'true' - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_arm64-v8a.apk - path: ${{ github.workspace }}/build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_arm64-v8a.apk + path: build/app/outputs/flutter-apk/*arm64-v8a* archive: false - - name: Check armeabi-v7a apk - id: check_armeabi - run: | - if [ -f "$GITHUB_WORKSPACE/build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_armeabi-v7a.apk" ]; then - echo "found=true" >> "$GITHUB_OUTPUT" - else - echo "found=false" >> "$GITHUB_OUTPUT" - fi - - name: Upload APK armeabi-v7a - if: steps.check_armeabi.outputs.found == 'true' - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_armeabi-v7a.apk - path: ${{ github.workspace }}/build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_armeabi-v7a.apk + path: build/app/outputs/flutter-apk/*armeabi-v7a* archive: false - - name: Check x86_64 apk - id: check_x86 - run: | - if [ -f "$GITHUB_WORKSPACE/build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_x86_64.apk" ]; then - echo "found=true" >> "$GITHUB_OUTPUT" - else - echo "found=false" >> "$GITHUB_OUTPUT" - fi - - name: Upload APK x86_64 - if: steps.check_x86.outputs.found == 'true' - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_x86_64.apk - path: ${{ github.workspace }}/build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_x86_64.apk + path: build/app/outputs/flutter-apk/*x86_64* archive: false - name: Upload app bundle uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}.aab - path: ${{ github.workspace }}/build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}.aab + path: build/app/outputs/bundle/${{ steps.build_options.outputs.flavor }}Release/app-${{ steps.build_options.outputs.flavor }}-release.aab archive: false - name: Upload symbols file uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: ${{ inputs['app-name'] }} ${{ steps.build_options.outputs.version_name }} Symbols - path: ${{ github.workspace }}/build-artifacts/symbols + name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_symbols + path: build/app/symbols - name: Upload size analysis apk if: inputs['build-type'] == 'size-analysis' @@ -325,34 +278,28 @@ jobs: github_token: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }} fail_on_self_push: false - - name: Download APK arm64-v8a artifact - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 - with: - name: ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_arm64-v8a.apk - - - name: Download APK armeabi-v7a artifact - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 - with: - name: ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_armeabi-v7a.apk - - - name: Download APK x86_64 artifact + - name: Download APK artifacts uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: - name: ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_x86_64.apk + path: release-assets + pattern: ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_*.apk + merge-multiple: true - name: Download app bundle artifact uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}.aab + path: release-assets - name: Download symbols artifact uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: - name: ${{ inputs['app-name'] }} ${{ needs.build.outputs.version_name }} Symbols + name: ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_symbols + path: release-assets/symbols - name: Zip symbols folder run: | - zip -r "${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_Symbols.zip" ./*.symbols + zip -r "release-assets/${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_Symbols.zip" release-assets/symbols - name: Create GitHub Release uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 @@ -362,8 +309,6 @@ jobs: draft: true prerelease: false files: | - ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_arm64-v8a.apk - ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_armeabi-v7a.apk - ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_x86_64.apk - ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}.aab - ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_Symbols.zip + release-assets/*.apk + release-assets/*.aab + release-assets/*.zip From 9551fabdb6218ee8fd85371cd18bb65b15bcd570 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 16:50:12 +0200 Subject: [PATCH 02/25] =?UTF-8?q?=F0=9F=91=B7=20Fix=20working=20directory?= =?UTF-8?q?=20path?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 1af0e67..fb9f02b 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -167,28 +167,28 @@ jobs: uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_arm64-v8a.apk - path: build/app/outputs/flutter-apk/*arm64-v8a* + path: ${{ github.workspace }}/build/app/outputs/flutter-apk/*arm64-v8a* archive: false - name: Upload APK armeabi-v7a uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_armeabi-v7a.apk - path: build/app/outputs/flutter-apk/*armeabi-v7a* + path: ${{ github.workspace }}/build/app/outputs/flutter-apk/*armeabi-v7a* archive: false - name: Upload APK x86_64 uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_x86_64.apk - path: build/app/outputs/flutter-apk/*x86_64* + path: ${{ github.workspace }}/build/app/outputs/flutter-apk/*x86_64* archive: false - name: Upload app bundle uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}.aab - path: build/app/outputs/bundle/${{ steps.build_options.outputs.flavor }}Release/app-${{ steps.build_options.outputs.flavor }}-release.aab + path: ${{ github.workspace }}/build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}.aab archive: false - name: Upload symbols file @@ -208,7 +208,7 @@ jobs: if: inputs['build-type'] == 'release' && inputs['release-version'] uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - path: ${{ inputs['working-directory'] }}/pubspec.yaml + path: ${{ github.workspace }}/pubspec.yaml archive: false post-request: From 04a1406257facc32cfcd29be8ba5c3b81561d90c Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 16:56:36 +0200 Subject: [PATCH 03/25] =?UTF-8?q?=F0=9F=91=B7=20Update=20artifact=20paths?= =?UTF-8?q?=20without=20globs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index fb9f02b..30b9535 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -167,28 +167,28 @@ jobs: uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_arm64-v8a.apk - path: ${{ github.workspace }}/build/app/outputs/flutter-apk/*arm64-v8a* + path: ${{ github.workspace }}/build/app/outputs/flutter-apk/app-arm64-v8a-${{ steps.build_options.outputs.flavor }}-release.apk archive: false - name: Upload APK armeabi-v7a uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_armeabi-v7a.apk - path: ${{ github.workspace }}/build/app/outputs/flutter-apk/*armeabi-v7a* + path: ${{ github.workspace }}/build/app/outputs/flutter-apk/app-armeabi-v7a-${{ steps.build_options.outputs.flavor }}-release.apk archive: false - name: Upload APK x86_64 uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_x86_64.apk - path: ${{ github.workspace }}/build/app/outputs/flutter-apk/*x86_64* + path: ${{ github.workspace }}/build/app/outputs/flutter-apk/app-x86_64-${{ steps.build_options.outputs.flavor }}-release.apk archive: false - name: Upload app bundle uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}.aab - path: ${{ github.workspace }}/build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}.aab + path: ${{ github.workspace }}/build/app/outputs/bundle/${{ steps.build_options.outputs.flavor }}Release/app-${{ steps.build_options.outputs.flavor }}-release.aab archive: false - name: Upload symbols file From fe195df534b9b70a2dd61d9487aefaa1422efa82 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 17:52:13 +0200 Subject: [PATCH 04/25] =?UTF-8?q?=F0=9F=91=B7=20Fix=20working=20directory?= =?UTF-8?q?=20paths?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- .github/workflows/workflow-build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 22422ad..1e6a593 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -167,28 +167,28 @@ jobs: uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_arm64-v8a.apk - path: ${{ github.workspace }}/build/app/outputs/flutter-apk/app-arm64-v8a-${{ steps.build_options.outputs.flavor }}-release.apk + path: ${{ inputs['working-directory'] }}/build/app/outputs/flutter-apk/app-arm64-v8a-${{ steps.build_options.outputs.flavor }}-release.apk archive: false - name: Upload APK armeabi-v7a uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_armeabi-v7a.apk - path: ${{ github.workspace }}/build/app/outputs/flutter-apk/app-armeabi-v7a-${{ steps.build_options.outputs.flavor }}-release.apk + path: ${{ inputs['working-directory'] }}/build/app/outputs/flutter-apk/app-armeabi-v7a-${{ steps.build_options.outputs.flavor }}-release.apk archive: false - name: Upload APK x86_64 uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_x86_64.apk - path: ${{ github.workspace }}/build/app/outputs/flutter-apk/app-x86_64-${{ steps.build_options.outputs.flavor }}-release.apk + path: ${{ inputs['working-directory'] }}/build/app/outputs/flutter-apk/app-x86_64-${{ steps.build_options.outputs.flavor }}-release.apk archive: false - name: Upload app bundle uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}.aab - path: ${{ github.workspace }}/build/app/outputs/bundle/${{ steps.build_options.outputs.flavor }}Release/app-${{ steps.build_options.outputs.flavor }}-release.aab + path: ${{ inputs['working-directory'] }}/build/app/outputs/bundle/${{ steps.build_options.outputs.flavor }}Release/app-${{ steps.build_options.outputs.flavor }}-release.aab archive: false - name: Upload symbols file @@ -208,7 +208,7 @@ jobs: if: inputs['build-type'] == 'release' && inputs['release-version'] uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - path: ${{ github.workspace }}/pubspec.yaml + path: ${{ inputs['working-directory'] }}/pubspec.yaml archive: false post-build: From 060ed7f83c1b1dd3f4bb1ea4bb9cbd524b3cf9b0 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 17:57:52 +0200 Subject: [PATCH 05/25] =?UTF-8?q?=F0=9F=91=B7=20Update=20symbols=20path=20?= =?UTF-8?q?to=20use=20working=20directory=20input?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 1e6a593..1f29543 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -195,7 +195,7 @@ jobs: uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_symbols - path: build/app/symbols + path: ${{ inputs['working-directory'] }}/build/app/symbols - name: Upload size analysis apk if: inputs['build-type'] == 'size-analysis' From 6c659f7ddade2b1c5d4b7f7cff7864e9421cea54 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 18:17:40 +0200 Subject: [PATCH 06/25] =?UTF-8?q?=F0=9F=91=B7=20Fix=20artifact=20names?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- .github/workflows/workflow-build.yml | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 1f29543..b7e4845 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -163,32 +163,39 @@ jobs: if: inputs['build-type'] == 'size-analysis' run: flutter build apk ${{ steps.build_options.outputs.build_args }} --analyze-size --target-platform android-arm64 + - name: Rename build artifacts + run: | + BUILD_DIR="build/app/outputs" + ARTIFACTS_DIR="$GITHUB_WORKSPACE/build-artifacts" + BASE_NAME="$ARTIFACTS_DIR/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}" + mkdir -p "$ARTIFACTS_DIR" + mv "$BUILD_DIR/flutter-apk/app-arm64-v8a-${{ steps.build_options.outputs.flavor }}-release.apk" "${BASE_NAME}_arm64-v8a.apk" || echo "arm64-v8a APK not found, skipping" + mv "$BUILD_DIR/flutter-apk/app-armeabi-v7a-${{ steps.build_options.outputs.flavor }}-release.apk" "${BASE_NAME}_armeabi-v7a.apk" || echo "armeabi-v7a APK not found, skipping" + mv "$BUILD_DIR/flutter-apk/app-x86_64-${{ steps.build_options.outputs.flavor }}-release.apk" "${BASE_NAME}_x86_64.apk" || echo "x86_64 APK not found, skipping" + mv "$BUILD_DIR/bundle/${{ steps.build_options.outputs.flavor }}Release/app-${{ steps.build_options.outputs.flavor }}-release.aab" "$BASE_NAME.aab" || echo "App bundle not found, skipping" + - name: Upload APK arm64-v8a uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_arm64-v8a.apk - path: ${{ inputs['working-directory'] }}/build/app/outputs/flutter-apk/app-arm64-v8a-${{ steps.build_options.outputs.flavor }}-release.apk + path: build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_arm64-v8a.apk archive: false - name: Upload APK armeabi-v7a uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_armeabi-v7a.apk - path: ${{ inputs['working-directory'] }}/build/app/outputs/flutter-apk/app-armeabi-v7a-${{ steps.build_options.outputs.flavor }}-release.apk + path: build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_armeabi-v7a.apk archive: false - name: Upload APK x86_64 uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_x86_64.apk - path: ${{ inputs['working-directory'] }}/build/app/outputs/flutter-apk/app-x86_64-${{ steps.build_options.outputs.flavor }}-release.apk + path: build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}_x86_64.apk archive: false - name: Upload app bundle uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: ${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}.aab - path: ${{ inputs['working-directory'] }}/build/app/outputs/bundle/${{ steps.build_options.outputs.flavor }}Release/app-${{ steps.build_options.outputs.flavor }}-release.aab + path: build-artifacts/${{ inputs['app-name'] }}_${{ steps.build_options.outputs.version_name }}.aab archive: false - name: Upload symbols file From 66d552f1bb4ac5a142e032bee1ceb33a49a4ed5e Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 18:19:25 +0200 Subject: [PATCH 07/25] =?UTF-8?q?=F0=9F=91=B7=20Simplify=20artifact=20hand?= =?UTF-8?q?ling=20by=20adjusting=20download=20path=20and=20removing=20zipp?= =?UTF-8?q?ing=20step?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- .github/workflows/workflow-build.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index b7e4845..d0ed527 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -303,11 +303,8 @@ jobs: uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: ${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_symbols - path: release-assets/symbols - - - name: Zip symbols folder - run: | - zip -r "release-assets/${{ inputs['app-name'] }}_${{ needs.build.outputs.version_name }}_Symbols.zip" release-assets/symbols + path: release-assets + skip-decompress: true - name: Create GitHub Release uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0 From 54cfe38e343ab9f30f04c2d2584e0cd1f6c10f38 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 18:27:27 +0200 Subject: [PATCH 08/25] =?UTF-8?q?=F0=9F=91=B7=20Release=20all=20release=20?= =?UTF-8?q?assets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index d0ed527..f0f71c1 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -313,7 +313,4 @@ jobs: name: "🔖 v${{ inputs['release-version'] }}" draft: true prerelease: false - files: | - release-assets/*.apk - release-assets/*.aab - release-assets/*.zip + files: release-assets/* From 8b05aa4e1716d04ff7640503e8f45d805433df53 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 18:33:33 +0200 Subject: [PATCH 09/25] =?UTF-8?q?=F0=9F=91=B7=20Create=20test=20releases?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- .github/workflows/test-app-workflow.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-app-workflow.yml b/.github/workflows/test-app-workflow.yml index 55bdb46..4a9ebf6 100644 --- a/.github/workflows/test-app-workflow.yml +++ b/.github/workflows/test-app-workflow.yml @@ -28,6 +28,7 @@ jobs: uses: ./.github/workflows/workflow-build.yml with: app-name: "test_app" - build-type: ${{ github.event.inputs['build-type'] || 'build' }} + build-type: ${{ github.event.inputs['build-type'] || 'release' }} + release-version: "test" working-directory: "test_app" java-version: "21" From 16c0e8c0c0afa5e1d6f75cf24ffbd6334c901966 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 18:40:51 +0200 Subject: [PATCH 10/25] =?UTF-8?q?=F0=9F=91=B7=20Add=20option=20to=20skip?= =?UTF-8?q?=20updating=20pubspec=20version=20number?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- .github/workflows/test-app-workflow.yml | 1 + .github/workflows/workflow-build.yml | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-app-workflow.yml b/.github/workflows/test-app-workflow.yml index 4a9ebf6..f152f26 100644 --- a/.github/workflows/test-app-workflow.yml +++ b/.github/workflows/test-app-workflow.yml @@ -32,3 +32,4 @@ jobs: release-version: "test" working-directory: "test_app" java-version: "21" + skip-version-update: true diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index f0f71c1..7d858fc 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -31,6 +31,11 @@ on: description: "GitHub App ID for Release creation" required: false type: string + skip-version-update: + description: "Whether to skip updating the version in pubspec.yaml (useful for non-release builds)" + required: false + type: boolean + default: false secrets: KEY_PASSWORD: required: false @@ -113,7 +118,7 @@ jobs: uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0 - name: Update pubspec.yaml version - if: inputs['build-type'] == 'release' && inputs['release-version'] + if: inputs['build-type'] == 'release' && inputs['release-version'] && inputs['skip-version-update'] == 'false' run: | flutter pub global activate pub_version_plus pubversion set ${{ inputs['release-version'] }} @@ -212,7 +217,7 @@ jobs: archive: false - name: Upload pubspec.yaml - if: inputs['build-type'] == 'release' && inputs['release-version'] + if: inputs['build-type'] == 'release' && inputs['release-version'] && inputs['skip-version-update'] == 'false' uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: path: ${{ inputs['working-directory'] }}/pubspec.yaml @@ -274,11 +279,13 @@ jobs: token: ${{ steps.app-token.outputs.token || github.token }} - name: Download pubspec.yaml + if: inputs['skip-version-update'] == 'false' uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: pubspec.yaml - name: Commit pubspec.yaml + if: inputs['skip-version-update'] == 'false' uses: suzuki-shunsuke/commit-action@06e3b49d4706498d325d29bd85adc82ecf2f5d8f # v1.0.0 with: commit_message: "🔖 Release v${{ inputs['release-version'] }} [skip ci]" From e42e2f819842a146f9baad932d1b9b4c4a32da70 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 18:48:22 +0200 Subject: [PATCH 11/25] =?UTF-8?q?=F0=9F=93=9D=20Document=20skip-version-up?= =?UTF-8?q?date=20input?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- .github/workflows/workflow-build.yml | 2 +- README.md | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 7d858fc..97d57a1 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -32,7 +32,7 @@ on: required: false type: string skip-version-update: - description: "Whether to skip updating the version in pubspec.yaml (useful for non-release builds)" + description: "Whether to skip updating the version in pubspec.yaml" required: false type: boolean default: false diff --git a/README.md b/README.md index a8a55a8..6d67db4 100644 --- a/README.md +++ b/README.md @@ -20,14 +20,15 @@ A reusable GitHub Actions workflow to **test, build, analyze, and release Flutte ## Inputs -| Name | Description | Required | Default | -| ------------------- | -------------------------------------------------------------- | -------- | ------- | -| `release-version` | Version to release (e.g., `1.2.3`, `v` is added automatically) | No | — | -| `app-name` | Name of the app (used for artifact naming) | No | — | -| `build-type` | Type of build (`test`, `build`, `size-analysis`, `release`) | No | `test` | -| `java-version` | Java version used for Android build | No | `21` | -| `working-directory` | Directory of the Flutter project | No | `.` | -| `bot-app-id` | GitHub App ID used for release creation | No | — | +| Name | Description | Required | Default | +| --------------------- | -------------------------------------------------------------- | -------- | ------- | +| `release-version` | Version to release (e.g., `1.2.3`, `v` is added automatically) | No | — | +| `app-name` | Name of the app (used for artifact naming) | No | — | +| `build-type` | Type of build (`test`, `build`, `size-analysis`, `release`) | No | `test` | +| `java-version` | Java version used for Android build | No | `21` | +| `working-directory` | Directory of the Flutter project | No | `.` | +| `bot-app-id` | GitHub App ID used for release creation | No | — | +| `skip-version-update` | Whether to skip updating the version in pubspec.yaml | No | `false` | ## Secrets From 2fde33aae4021804a55b4db84cac6c59da37ca4f Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 19:06:43 +0200 Subject: [PATCH 12/25] =?UTF-8?q?=F0=9F=91=B7=20Use=20boolean=20checks=20f?= =?UTF-8?q?or=20skip-version-update=20input?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 97d57a1..c4b62f2 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -118,7 +118,7 @@ jobs: uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0 - name: Update pubspec.yaml version - if: inputs['build-type'] == 'release' && inputs['release-version'] && inputs['skip-version-update'] == 'false' + if: inputs['build-type'] == 'release' && inputs['release-version'] && ! inputs['skip-version-update'] run: | flutter pub global activate pub_version_plus pubversion set ${{ inputs['release-version'] }} @@ -217,7 +217,7 @@ jobs: archive: false - name: Upload pubspec.yaml - if: inputs['build-type'] == 'release' && inputs['release-version'] && inputs['skip-version-update'] == 'false' + if: inputs['build-type'] == 'release' && inputs['release-version'] && ! inputs['skip-version-update'] uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: path: ${{ inputs['working-directory'] }}/pubspec.yaml @@ -279,13 +279,13 @@ jobs: token: ${{ steps.app-token.outputs.token || github.token }} - name: Download pubspec.yaml - if: inputs['skip-version-update'] == 'false' + if: ! inputs['skip-version-update'] uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: pubspec.yaml - name: Commit pubspec.yaml - if: inputs['skip-version-update'] == 'false' + if: ! inputs['skip-version-update'] uses: suzuki-shunsuke/commit-action@06e3b49d4706498d325d29bd85adc82ecf2f5d8f # v1.0.0 with: commit_message: "🔖 Release v${{ inputs['release-version'] }} [skip ci]" From 41a91b86e88ab5f627d3003687abf77b36e6d284 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 19:17:48 +0200 Subject: [PATCH 13/25] =?UTF-8?q?=F0=9F=91=B7=20Fix=20if=20syntax?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- .github/workflows/workflow-build.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index c4b62f2..a0fe24c 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -118,10 +118,9 @@ jobs: uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0 - name: Update pubspec.yaml version - if: inputs['build-type'] == 'release' && inputs['release-version'] && ! inputs['skip-version-update'] + if: ${{ inputs['build-type'] == 'release' && inputs['release-version'] && !inputs['skip-version-update'] }} run: | flutter pub global activate pub_version_plus - pubversion set ${{ inputs['release-version'] }} - name: Install pub dependencies run: flutter pub get @@ -165,7 +164,7 @@ jobs: run: flutter build appbundle ${{ steps.build_options.outputs.build_args }} - name: Build APK for size analysis - if: inputs['build-type'] == 'size-analysis' + if: ${{ inputs['build-type'] == 'size-analysis' }} run: flutter build apk ${{ steps.build_options.outputs.build_args }} --analyze-size --target-platform android-arm64 - name: Rename build artifacts @@ -210,14 +209,14 @@ jobs: path: ${{ inputs['working-directory'] }}/build/app/symbols - name: Upload size analysis apk - if: inputs['build-type'] == 'size-analysis' + if: ${{ inputs['build-type'] == 'size-analysis' }} uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: path: /home/runner/.flutter-devtools/apk-code-size-analysis_01.json archive: false - name: Upload pubspec.yaml - if: inputs['build-type'] == 'release' && inputs['release-version'] && ! inputs['skip-version-update'] + if: ${{ inputs['build-type'] == 'release' && inputs['release-version'] && !inputs['skip-version-update'] }} uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: path: ${{ inputs['working-directory'] }}/pubspec.yaml @@ -240,7 +239,7 @@ jobs: labels: "⚗️ Request Build" - name: Comment artifact links - if: github.event_name == 'pull_request' + if: ${{ github.event_name == 'pull_request' }} uses: RubberDuckCrew/artifact2pr@1d2777cac9898de6a6cb16eb32b5c738ea428787 # v1.1.1 with: github-token: ${{ secrets.GITHUB_TOKEN }} @@ -249,7 +248,7 @@ jobs: release: name: Create release needs: build - if: inputs['build-type'] == 'release' && inputs['release-version'] + if: ${{ inputs['build-type'] == 'release' && inputs['release-version'] }} runs-on: ubuntu-latest permissions: @@ -279,13 +278,13 @@ jobs: token: ${{ steps.app-token.outputs.token || github.token }} - name: Download pubspec.yaml - if: ! inputs['skip-version-update'] + if: ${{ !inputs['skip-version-update'] }} uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: pubspec.yaml - name: Commit pubspec.yaml - if: ! inputs['skip-version-update'] + if: ${{ !inputs['skip-version-update'] }} uses: suzuki-shunsuke/commit-action@06e3b49d4706498d325d29bd85adc82ecf2f5d8f # v1.0.0 with: commit_message: "🔖 Release v${{ inputs['release-version'] }} [skip ci]" From ca5ea415cb33f6f87803c6aa67c26cc1f8637096 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 19:48:43 +0200 Subject: [PATCH 14/25] =?UTF-8?q?=F0=9F=91=B7=20Cleanup=20previous=20test?= =?UTF-8?q?=20release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- .github/workflows/close-actions.yml | 10 ++++++++++ .github/workflows/test-app-workflow.yml | 17 ++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/.github/workflows/close-actions.yml b/.github/workflows/close-actions.yml index 81850c7..7b65bc1 100644 --- a/.github/workflows/close-actions.yml +++ b/.github/workflows/close-actions.yml @@ -13,3 +13,13 @@ jobs: issues: write pull-requests: write actions: write + + cleanup: + name: Cleanup from previous test runs + if: ${{ github.event_name == 'pull_request' }} + runs-on: ubuntu-latest + env: + RELEASE_VERSION: "test-${{ github.ref_name }}" + steps: + - name: Delete previous test release + run: gh release delete v${{ github.env.RELEASE_VERSION }} --cleanup-tag -y || echo "No previous release to delete" diff --git a/.github/workflows/test-app-workflow.yml b/.github/workflows/test-app-workflow.yml index f152f26..a256062 100644 --- a/.github/workflows/test-app-workflow.yml +++ b/.github/workflows/test-app-workflow.yml @@ -3,9 +3,6 @@ name: Test App Workflow on: push: branches: [main] - paths: - - "test_app/**" - - ".github/workflows/test-app-workflow.yml" pull_request: types: [opened, synchronize, reopened] workflow_dispatch: @@ -23,13 +20,23 @@ permissions: contents: write pull-requests: write +env: + RELEASE_VERSION: "test-${{ github.ref_name }}" + jobs: - test-app: + cleanup: + name: Cleanup from previous test runs + runs-on: ubuntu-latest + steps: + - name: Delete previous test release + run: gh release delete v${{ github.env.RELEASE_VERSION }} --cleanup-tag -y || echo "No previous release to delete" + + test: uses: ./.github/workflows/workflow-build.yml with: app-name: "test_app" build-type: ${{ github.event.inputs['build-type'] || 'release' }} - release-version: "test" + release-version: ${{ github.env.RELEASE_VERSION }} working-directory: "test_app" java-version: "21" skip-version-update: true From 71917aad5288dc88e60c2df17f42bb5ccb676d1b Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 19:54:54 +0200 Subject: [PATCH 15/25] =?UTF-8?q?=F0=9F=91=B7=20Fix=20release=20version=20?= =?UTF-8?q?envs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/close-actions.yml | 4 +--- .github/workflows/test-app-workflow.yml | 7 ++----- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/close-actions.yml b/.github/workflows/close-actions.yml index 7b65bc1..4f50ee2 100644 --- a/.github/workflows/close-actions.yml +++ b/.github/workflows/close-actions.yml @@ -18,8 +18,6 @@ jobs: name: Cleanup from previous test runs if: ${{ github.event_name == 'pull_request' }} runs-on: ubuntu-latest - env: - RELEASE_VERSION: "test-${{ github.ref_name }}" steps: - name: Delete previous test release - run: gh release delete v${{ github.env.RELEASE_VERSION }} --cleanup-tag -y || echo "No previous release to delete" + run: gh release delete vtest-${{ github.ref_name }} --cleanup-tag -y || echo "No previous release to delete" diff --git a/.github/workflows/test-app-workflow.yml b/.github/workflows/test-app-workflow.yml index a256062..aea8006 100644 --- a/.github/workflows/test-app-workflow.yml +++ b/.github/workflows/test-app-workflow.yml @@ -20,23 +20,20 @@ permissions: contents: write pull-requests: write -env: - RELEASE_VERSION: "test-${{ github.ref_name }}" - jobs: cleanup: name: Cleanup from previous test runs runs-on: ubuntu-latest steps: - name: Delete previous test release - run: gh release delete v${{ github.env.RELEASE_VERSION }} --cleanup-tag -y || echo "No previous release to delete" + run: gh release delete vtest-${{ github.ref_name }} --cleanup-tag -y || echo "No previous release to delete" test: uses: ./.github/workflows/workflow-build.yml with: app-name: "test_app" build-type: ${{ github.event.inputs['build-type'] || 'release' }} - release-version: ${{ github.env.RELEASE_VERSION }} + release-version: "test-${{ github.ref_name }}" working-directory: "test_app" java-version: "21" skip-version-update: true From 3000da1f07d5d37c3ed70ca55151bbe50c4b020f Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 19:56:33 +0200 Subject: [PATCH 16/25] =?UTF-8?q?=F0=9F=91=B7=20Add=20github=20token=20to?= =?UTF-8?q?=20use=20gh=20cli?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- .github/workflows/close-actions.yml | 2 ++ .github/workflows/test-app-workflow.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/close-actions.yml b/.github/workflows/close-actions.yml index 4f50ee2..9938a62 100644 --- a/.github/workflows/close-actions.yml +++ b/.github/workflows/close-actions.yml @@ -20,4 +20,6 @@ jobs: runs-on: ubuntu-latest steps: - name: Delete previous test release + env: + GH_TOKEN: ${{ github.token }} run: gh release delete vtest-${{ github.ref_name }} --cleanup-tag -y || echo "No previous release to delete" diff --git a/.github/workflows/test-app-workflow.yml b/.github/workflows/test-app-workflow.yml index aea8006..3c2a807 100644 --- a/.github/workflows/test-app-workflow.yml +++ b/.github/workflows/test-app-workflow.yml @@ -26,6 +26,8 @@ jobs: runs-on: ubuntu-latest steps: - name: Delete previous test release + env: + GH_TOKEN: ${{ github.token }} run: gh release delete vtest-${{ github.ref_name }} --cleanup-tag -y || echo "No previous release to delete" test: From 5f443035322129ef709c068eb12fbc2faeeb1026 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 20:01:26 +0200 Subject: [PATCH 17/25] =?UTF-8?q?=F0=9F=91=B7=20Add=20missing=20repo=20che?= =?UTF-8?q?ckout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/close-actions.yml | 3 +++ .github/workflows/test-app-workflow.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/close-actions.yml b/.github/workflows/close-actions.yml index 9938a62..c32ba27 100644 --- a/.github/workflows/close-actions.yml +++ b/.github/workflows/close-actions.yml @@ -19,6 +19,9 @@ jobs: if: ${{ github.event_name == 'pull_request' }} runs-on: ubuntu-latest steps: + - name: Checkout repository + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Delete previous test release env: GH_TOKEN: ${{ github.token }} diff --git a/.github/workflows/test-app-workflow.yml b/.github/workflows/test-app-workflow.yml index 3c2a807..be0221e 100644 --- a/.github/workflows/test-app-workflow.yml +++ b/.github/workflows/test-app-workflow.yml @@ -25,6 +25,9 @@ jobs: name: Cleanup from previous test runs runs-on: ubuntu-latest steps: + - name: Checkout repository + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Delete previous test release env: GH_TOKEN: ${{ github.token }} From e3deb936058863e1839414003335d7580a4e4d34 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 21:00:36 +0200 Subject: [PATCH 18/25] =?UTF-8?q?=F0=9F=94=A7=20Add=20.gitattributes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..94f480d --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf \ No newline at end of file From 0ed2f47f5c1bb5584a2ca7b59d07cd765476350c Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 21:01:30 +0200 Subject: [PATCH 19/25] =?UTF-8?q?=F0=9F=91=B7=20Add=20accidentally=20remov?= =?UTF-8?q?ed=20pubversion=20set?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index a0fe24c..e9d605d 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -121,6 +121,7 @@ jobs: if: ${{ inputs['build-type'] == 'release' && inputs['release-version'] && !inputs['skip-version-update'] }} run: | flutter pub global activate pub_version_plus + pubversion set ${{ inputs['release-version'] }} - name: Install pub dependencies run: flutter pub get From 1401d603786c7d51ea514adb6243dc956cb90fe4 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 21:30:50 +0200 Subject: [PATCH 20/25] =?UTF-8?q?=E2=9A=B0=EF=B8=8F=20Remove=20dead=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index e9d605d..6566508 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -148,7 +148,6 @@ jobs: SHA="${{ github.event.pull_request.head.sha || github.sha }}" SHORT_SHA="${SHA:0:7}" VERSION="${{ github.event.inputs['release-version'] }}" - VERSION_NAME="${VERSION:-$(echo "$GITHUB_REF_NAME" | tr / _)}_${SHORT_SHA}" VERSION_NAME="$(echo "$GITHUB_REF_NAME" | tr / _)_$SHORT_SHA" FLAVOR="${{ inputs['build-type'] == 'release' && 'production' || 'staging' }}" SKIP_SIGN="${{ steps.keystore.outputs.signing_available != 'true' && '-PskipSigning=true' || '' }}" From 06c839d7ac751e2fa2360795bf513bb6909572cb Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 21:48:59 +0200 Subject: [PATCH 21/25] =?UTF-8?q?=F0=9F=91=B7=20Fix=20version=20name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 6566508..017b1a6 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -147,8 +147,8 @@ jobs: run: | SHA="${{ github.event.pull_request.head.sha || github.sha }}" SHORT_SHA="${SHA:0:7}" - VERSION="${{ github.event.inputs['release-version'] }}" - VERSION_NAME="$(echo "$GITHUB_REF_NAME" | tr / _)_$SHORT_SHA" + RELEASE_VERSION="${{ inputs['release-version'] }}" + VERSION_NAME="${RELEASE_VERSION:-$(echo "$GITHUB_REF_NAME" | tr / _)}_${SHORT_SHA}" FLAVOR="${{ inputs['build-type'] == 'release' && 'production' || 'staging' }}" SKIP_SIGN="${{ steps.keystore.outputs.signing_available != 'true' && '-PskipSigning=true' || '' }}" { From 49010a5245b7fc137e8c16f7160b97380d11734a Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 21:51:45 +0200 Subject: [PATCH 22/25] =?UTF-8?q?=F0=9F=91=B7=20Update=20refname=20replace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 017b1a6..1058431 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -148,7 +148,7 @@ jobs: SHA="${{ github.event.pull_request.head.sha || github.sha }}" SHORT_SHA="${SHA:0:7}" RELEASE_VERSION="${{ inputs['release-version'] }}" - VERSION_NAME="${RELEASE_VERSION:-$(echo "$GITHUB_REF_NAME" | tr / _)}_${SHORT_SHA}" + VERSION_NAME="${RELEASE_VERSION:-$(echo "$GITHUB_REF_NAME" | tr / -)}_${SHORT_SHA}" FLAVOR="${{ inputs['build-type'] == 'release' && 'production' || 'staging' }}" SKIP_SIGN="${{ steps.keystore.outputs.signing_available != 'true' && '-PskipSigning=true' || '' }}" { From 78b0514b4befd39eb4bf70a974d636a8f25f26e5 Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 21:59:41 +0200 Subject: [PATCH 23/25] =?UTF-8?q?=F0=9F=90=9B=20Fix=20replacing=20version?= =?UTF-8?q?=20name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 1058431..01648c7 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -148,7 +148,7 @@ jobs: SHA="${{ github.event.pull_request.head.sha || github.sha }}" SHORT_SHA="${SHA:0:7}" RELEASE_VERSION="${{ inputs['release-version'] }}" - VERSION_NAME="${RELEASE_VERSION:-$(echo "$GITHUB_REF_NAME" | tr / -)}_${SHORT_SHA}" + VERSION_NAME="$(echo "${RELEASE_VERSION:-$GITHUB_REF_NAME}" | tr / -)_${SHORT_SHA}" FLAVOR="${{ inputs['build-type'] == 'release' && 'production' || 'staging' }}" SKIP_SIGN="${{ steps.keystore.outputs.signing_available != 'true' && '-PskipSigning=true' || '' }}" { From d5dcae6278223c40cdf2d31816e0699d019e99bc Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 22:04:39 +0200 Subject: [PATCH 24/25] =?UTF-8?q?=F0=9F=94=8A=20Log=20build=20options?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 01648c7..4ba5528 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -151,11 +151,12 @@ jobs: VERSION_NAME="$(echo "${RELEASE_VERSION:-$GITHUB_REF_NAME}" | tr / -)_${SHORT_SHA}" FLAVOR="${{ inputs['build-type'] == 'release' && 'production' || 'staging' }}" SKIP_SIGN="${{ steps.keystore.outputs.signing_available != 'true' && '-PskipSigning=true' || '' }}" + BUILD_ARGS="--release --flavor $FLAVOR --dart-define=GIT_COMMIT=$SHORT_SHA --obfuscate --split-debug-info=build/app/symbols $SKIP_SIGN" { echo "flavor=$FLAVOR" echo "version_name=$VERSION_NAME" - echo "build_args=--release --flavor $FLAVOR --dart-define=GIT_COMMIT=$SHORT_SHA --obfuscate --split-debug-info=build/app/symbols $SKIP_SIGN" - } >> "$GITHUB_OUTPUT" + echo "build_args=$BUILD_ARGS" + } | tee -a "$GITHUB_OUTPUT" - name: Build APK run: flutter build apk ${{ steps.build_options.outputs.build_args }} --split-per-abi From 17501f9583c27546307249df41e897526541523d Mon Sep 17 00:00:00 2001 From: Friedinger <71267611+Friedinger@users.noreply.github.com> Date: Wed, 29 Apr 2026 22:11:51 +0200 Subject: [PATCH 25/25] =?UTF-8?q?=F0=9F=90=9B=20Add=20missing=20path=20for?= =?UTF-8?q?=20pubspec=20download?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/workflow-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/workflow-build.yml b/.github/workflows/workflow-build.yml index 4ba5528..384bef0 100644 --- a/.github/workflows/workflow-build.yml +++ b/.github/workflows/workflow-build.yml @@ -283,6 +283,7 @@ jobs: uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: pubspec.yaml + path: ${{ inputs['working-directory'] }} - name: Commit pubspec.yaml if: ${{ !inputs['skip-version-update'] }}