Refactor GitLab CI: Add reusable Flutter job template and optimize pipeline structure.

This commit is contained in:
2025-09-21 00:45:13 +02:00
parent 40ec7a0d38
commit 33dd9d2c45

View File

@@ -1,4 +1,8 @@
default: stages:
- prepare
- test
.flutter_job: # Hidden Template
image: ghcr.io/cirruslabs/flutter:3.35.4 image: ghcr.io/cirruslabs/flutter:3.35.4
variables: variables:
PUB_CACHE: "$CI_PROJECT_DIR/.pub-cache" PUB_CACHE: "$CI_PROJECT_DIR/.pub-cache"
@@ -10,30 +14,30 @@ default:
- finlog_app/.dart_tool/ - finlog_app/.dart_tool/
- finlog_app/app/.dart_tool/ - finlog_app/app/.dart_tool/
- finlog_app/fluttery/.dart_tool/ - finlog_app/fluttery/.dart_tool/
before_script:
stages: - cd finlog_app
- prepare - flutter --version
- test
# 1) Einmal pub get im Workspace-Root # 1) Einmal pub get im Workspace-Root
prepare_flutter_workspace: prepare_flutter_workspace:
stage: prepare stage: prepare
extends: .flutter_job
script: script:
- cd finlog_app
- flutter --version
- flutter pub get - flutter pub get
# 2) Tests PARALLEL (beide hängen nur von prepare ab) # 2) Tests parallel (beide brauchen nur prepare)
fluttery_test: fluttery_test:
stage: test stage: test
needs: ["prepare_flutter_workspace"] extends: .flutter_job
needs: [ "prepare_flutter_workspace" ]
script: script:
- cd finlog_app/fluttery - cd fluttery
- flutter test - flutter test
app_test: app_test:
stage: test stage: test
needs: ["prepare_flutter_workspace"] extends: .flutter_job
needs: [ "prepare_flutter_workspace" ]
script: script:
- cd finlog_app/app - cd app
- flutter test - flutter test