fix gitlab ci

This commit is contained in:
root
2025-10-02 17:43:34 +00:00
parent a48f947d65
commit 82850b4556

View File

@@ -2,33 +2,20 @@ stages:
- build - build
- deploy - deploy
variables:
GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.jvmargs='-Xmx1536m' -Dorg.gradle.parallel=true"
GRADLE_USER_HOME: "${CI_PROJECT_DIR}/.gradle"
PUB_CACHE: "${CI_PROJECT_DIR}/.pub-cache"
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- .gradle/
- .pub-cache/
- android/.gradle/
- build/
build:apk: build:apk:
stage: build stage: build
image: ghcr.io/cirruslabs/flutter:stable image: cirrusci/flutter:latest
script: script:
- flutter pub get - flutter build apk --release
- flutter build apk --release --no-shrink
artifacts: artifacts:
paths: paths:
- build/app/outputs/flutter-apk/*.apk - build/app/outputs/flutter-apk/*.apk
expire_in: 30 days expire_in: 30 days
rules: rules:
- if: $CI_COMMIT_BRANCH =~ /^dev|main|feature\//
- if: $CI_COMMIT_TAG - if: $CI_COMMIT_TAG
allow_failure: false when: always
- if: $CI_COMMIT_BRANCH =~ /^dev|main/
when: on_success
deploy:release: deploy:release:
stage: deploy stage: deploy
@@ -39,7 +26,6 @@ deploy:release:
- apk add --no-cache curl jq - apk add --no-cache curl jq
script: script:
- | - |
# Версия релиза
VERSION="${CI_COMMIT_TAG:-v0.0.${CI_PIPELINE_ID}}" VERSION="${CI_COMMIT_TAG:-v0.0.${CI_PIPELINE_ID}}"
APK_FILE=$(ls build/app/outputs/flutter-apk/*.apk | head -n1) APK_FILE=$(ls build/app/outputs/flutter-apk/*.apk | head -n1)
if [ -z "$APK_FILE" ]; then if [ -z "$APK_FILE" ]; then
@@ -47,27 +33,39 @@ deploy:release:
exit 1 exit 1
fi fi
# Создаем описание релиза DESCRIPTION=$(cat <<END_DESC
DESCRIPTION="NeoMovies Mobile ${VERSION} NeoMovies Mobile ${VERSION}
Commit: ${CI_COMMIT_SHORT_SHA} Commit: ${CI_COMMIT_SHORT_SHA}
Branch: ${CI_COMMIT_BRANCH} Branch: ${CI_COMMIT_BRANCH}
Pipeline: [#${CI_PIPELINE_ID}](${CI_PIPELINE_URL}) Pipeline: [#${CI_PIPELINE_ID}](${CI_PIPELINE_URL})
APK: \`$(basename $APK_FILE)\`" APK: \`$(basename $APK_FILE)\`
END_DESC
)
RELEASE_PAYLOAD=$(cat <<EOF
{
"name": "NeoMovies ${VERSION}",
"tag_name": "${VERSION}",
"description": "${DESCRIPTION}",
"ref": "${CI_COMMIT_SHA}"
}
EOF
)
# Создаем релиз через GitLab API
curl -s --fail -X POST "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/releases" \ curl -s --fail -X POST "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/releases" \
--header "PRIVATE-TOKEN: ${CI_JOB_TOKEN}" \ --header "PRIVATE-TOKEN: ${CI_JOB_TOKEN}" \
--header "Content-Type: application/json" \ --header "Content-Type: application/json" \
--data "{\"name\":\"NeoMovies ${VERSION}\",\"tag_name\":\"${VERSION}\",\"description\":\"${DESCRIPTION}\",\"ref\":\"${CI_COMMIT_SHA}\"}" || \ --data "$RELEASE_PAYLOAD" || \
curl -s -X PUT "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/releases/${VERSION}" \ curl -s -X PUT "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/releases/${VERSION}" \
--header "PRIVATE-TOKEN: ${CI_JOB_TOKEN}" \ --header "PRIVATE-TOKEN: ${CI_JOB_TOKEN}" \
--header "Content-Type: application/json" \ --header "Content-Type: application/json" \
--data "{\"name\":\"NeoMovies ${VERSION}\",\"tag_name\":\"${VERSION}\",\"description\":\"${DESCRIPTION}\",\"ref\":\"${CI_COMMIT_SHA}\"}" --data "$RELEASE_PAYLOAD"
echo "Release created: ${CI_PROJECT_URL}/-/releases/${VERSION}" echo "Release created/updated: ${CI_PROJECT_URL}/-/releases/${VERSION}"
echo "APK artifact: ${CI_JOB_URL}/artifacts/browse" echo "APK artifact: ${CI_JOB_URL}/artifacts/browse"
artifacts: artifacts:
paths: paths:
- build/app/outputs/flutter-apk/*.apk - build/app/outputs/flutter-apk/*.apk
@@ -76,4 +74,4 @@ APK: \`$(basename $APK_FILE)\`"
- if: $CI_COMMIT_TAG - if: $CI_COMMIT_TAG
when: always when: always
- if: $CI_COMMIT_BRANCH =~ /^dev|main/ - if: $CI_COMMIT_BRANCH =~ /^dev|main/
when: on_success when: on_success