feat: complete leave approval MVP
This commit is contained in:
+121
@@ -0,0 +1,121 @@
|
||||
stages:
|
||||
- verify
|
||||
- build
|
||||
|
||||
default:
|
||||
interruptible: true
|
||||
retry:
|
||||
max: 1
|
||||
when:
|
||||
- runner_system_failure
|
||||
- stuck_or_timeout_failure
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
- if: $CI_COMMIT_BRANCH
|
||||
- if: $CI_COMMIT_TAG
|
||||
|
||||
backend-test:
|
||||
stage: verify
|
||||
image: eclipse-temurin:21-jdk
|
||||
variables:
|
||||
GRADLE_USER_HOME: $CI_PROJECT_DIR/.cache/gradle
|
||||
cache:
|
||||
key:
|
||||
files:
|
||||
- backend/gradle/wrapper/gradle-wrapper.properties
|
||||
paths:
|
||||
- .cache/gradle/caches/
|
||||
- .cache/gradle/wrapper/
|
||||
before_script:
|
||||
- cd backend
|
||||
- chmod +x gradlew
|
||||
script:
|
||||
- ./gradlew --no-daemon test
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 7 days
|
||||
reports:
|
||||
junit: backend/boot/build/test-results/test/*.xml
|
||||
|
||||
ai-service-test:
|
||||
stage: verify
|
||||
image: python:3.12-slim
|
||||
variables:
|
||||
PIP_CACHE_DIR: $CI_PROJECT_DIR/.cache/pip
|
||||
QWEN_API_KEY: ""
|
||||
cache:
|
||||
key:
|
||||
files:
|
||||
- ai-service/pyproject.toml
|
||||
paths:
|
||||
- .cache/pip/
|
||||
before_script:
|
||||
- cd ai-service
|
||||
- python -m pip install --upgrade pip
|
||||
- python -m pip install -e '.[dev]'
|
||||
script:
|
||||
- python -m compileall -q app tests
|
||||
- mkdir -p reports
|
||||
- pytest --junitxml=reports/pytest.xml
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 7 days
|
||||
reports:
|
||||
junit: ai-service/reports/pytest.xml
|
||||
|
||||
flutter-verify:
|
||||
stage: verify
|
||||
image: ghcr.io/cirruslabs/flutter:stable
|
||||
variables:
|
||||
PUB_CACHE: $CI_PROJECT_DIR/.cache/pub
|
||||
cache:
|
||||
key:
|
||||
files:
|
||||
- mobile/pubspec.lock
|
||||
paths:
|
||||
- .cache/pub/
|
||||
before_script:
|
||||
- cd mobile
|
||||
- flutter pub get
|
||||
script:
|
||||
- dart format --output=none --set-exit-if-changed lib test
|
||||
- flutter analyze
|
||||
- mkdir -p reports
|
||||
- flutter test --machine > reports/flutter-test.json
|
||||
after_script:
|
||||
- test -f mobile/reports/flutter-test.json || true
|
||||
artifacts:
|
||||
when: always
|
||||
expire_in: 7 days
|
||||
paths:
|
||||
- mobile/reports/flutter-test.json
|
||||
|
||||
android-debug-build:
|
||||
stage: build
|
||||
image: ghcr.io/cirruslabs/flutter:stable
|
||||
needs:
|
||||
- flutter-verify
|
||||
variables:
|
||||
PUB_CACHE: $CI_PROJECT_DIR/.cache/pub
|
||||
cache:
|
||||
key:
|
||||
files:
|
||||
- mobile/pubspec.lock
|
||||
paths:
|
||||
- .cache/pub/
|
||||
- mobile/.gradle/
|
||||
before_script:
|
||||
- cd mobile
|
||||
- flutter pub get
|
||||
script:
|
||||
- flutter build apk --debug
|
||||
artifacts:
|
||||
expire_in: 7 days
|
||||
paths:
|
||||
- mobile/build/app/outputs/flutter-apk/app-debug.apk
|
||||
|
||||
# iOS 构建需要项目自行配置带 Xcode 和 Flutter 的 macOS GitLab Runner。
|
||||
# 配置后可复制 flutter-verify 作业,并使用 tags: [macos] 及:
|
||||
# flutter build ios --simulator --no-codesign
|
||||
Reference in New Issue
Block a user