# 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 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 # Need extra system packages for GTK etc. script: - apt-get update && apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev - flutter config --enable-linux-desktop - flutter build linux --release --dart-define=ENV=production artifacts: paths: - build/linux/**/release/bundle expire_in: 1 week