Files
neomovies-mobile/.gitlab-ci.yml
2025-07-13 14:57:51 +03:00

66 lines
2.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# NeoMovies GitLab CI (shared runners only)
# Builds release APK (Android) and Linux desktop bundle using GitLab.com shared Docker runners.
image: ubuntu:22.04
stages:
- build
variables:
PUB_CACHE: "$CI_PROJECT_DIR/.pub-cache"
FLUTTER_VERSION: "3.22.1"
cache:
key: $CI_JOB_NAME
paths:
- .pub-cache
- build
before_script:
# Install build deps & Flutter SDK (cached by GitLab between jobs)
- apt-get update && apt-get install -y curl git unzip xz-utils zip clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev
- |
if [ ! -d "$CI_PROJECT_DIR/flutter/bin" ]; then
echo "Cloning Flutter beta channel...";
git clone --depth 1 --branch beta https://github.com/flutter/flutter.git "$CI_PROJECT_DIR/flutter";
fi
# mark cloned repo as safe
git config --global --add safe.directory "$CI_PROJECT_DIR/flutter"
- export PATH="$CI_PROJECT_DIR/flutter/bin:$PATH"
- flutter --version
- flutter pub get
build_android:
stage: build
before_script:
# ← всё из глобального before_script уже выполнено
- |
if [ ! -d "$CI_PROJECT_DIR/android-sdk" ]; then
echo "Installing Android SDK cmdline-tools…"
mkdir -p $CI_PROJECT_DIR/android-sdk/cmdline-tools
curl -sSL https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -o tools.zip
unzip -q tools.zip -d $CI_PROJECT_DIR/android-sdk/cmdline-tools
mv $CI_PROJECT_DIR/android-sdk/cmdline-tools/cmdline-tools $CI_PROJECT_DIR/android-sdk/cmdline-tools/latest
fi
- export ANDROID_HOME=$CI_PROJECT_DIR/android-sdk
- export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH
- yes | sdkmanager --licenses
- sdkmanager "platforms;android-34" "build-tools;34.0.0" "platform-tools"
script:
- flutter build apk --release --dart-define=ENV=production
artifacts:
paths:
- build/app/outputs/flutter-apk/app-release.apk
expire_in: 1 week
build_linux:
stage: build
before_script:
# global before_script выполнен
- apt-get update && apt-get install -y libjsoncpp-dev libsecret-1-dev
script:
- flutter build linux --release --dart-define=ENV=production
artifacts:
paths:
- build/linux/**/release/bundle
expire_in: 1 week