# 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 "Downloading Flutter $FLUTTER_VERSION"; curl -sL https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_$FLUTTER_VERSION-stable.tar.xz | tar xJf - -C "$CI_PROJECT_DIR"; fi - 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