Commit 265d2af0 authored by Watchtek's avatar Watchtek
Browse files

Update .gitlab-ci.yml file

parent 4065712f
Loading
Loading
Loading
Loading
Loading
+39 −24
Original line number Diff line number Diff line
stages:
  - download

# Reusable template for downloading a package and its dependencies
.default_download_template: &download_template
  stage: download
  image: ubuntu:22.04  # default image, overridden below
  variables:
    DEBIAN_FRONTEND: noninteractive
    DEST_DIR: /tmp/tmp
    PACKAGE_NAME: google-chrome-stable   # Default package, can be overridden
    PACKAGE_NAME: google-chrome-stable
  before_script:
    # Create destination folder
    - mkdir -p "$DEST_DIR"
    # Update package list quietly
    - apt-get update -qq
    # Install necessary tools quietly
    - apt-get install -y -qq wget gnupg apt-rdepends
  script:
    # Optional: add repository if PACKAGE_NAME is Chrome
    - if [ "$PACKAGE_NAME" = "google-chrome-stable" ]; then
        echo "deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main" | tee /etc/apt/sources.list.d/google-chrome.list;
        wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -;
    - |
      set -e

      # Add Google Chrome repository if PACKAGE_NAME is Chrome
      if [ "$PACKAGE_NAME" = "google-chrome-stable" ]; then
        echo "deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main" \
          | tee /etc/apt/sources.list.d/google-chrome.list
        wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
      fi

    # Update package list again quietly after adding repo
    - apt-get update -qq
      # Update quietly
      apt-get update -qq

      echo "📦 Resolving dependencies for $PACKAGE_NAME..."

      # Get dependencies, filter out virtual packages
      deps=$(apt-rdepends "$PACKAGE_NAME" \
        | grep -v "^ " \
        | grep -v "$PACKAGE_NAME" \
        | grep -vE '(-2\.0|:|<)')
      deps="$PACKAGE_NAME $deps"

    # Get exact dependencies for PACKAGE_NAME
    - deps=$(apt-rdepends "$PACKAGE_NAME" | grep -v "^ " | grep -v "$PACKAGE_NAME")
    - deps="$PACKAGE_NAME $deps"
      echo "✅ Packages to download:"
      echo "$deps"

    # Download package and dependencies quietly into DEST_DIR
    - cd "$DEST_DIR"
    - for pkg in $deps; do
        apt-get download -qq "$pkg";
      cd "$DEST_DIR"

      # Download real packages only
      for pkg in $deps; do
        if ls "$pkg"_*.deb >/dev/null 2>&1; then
          echo "Already downloaded: $pkg"
        elif apt-cache show "$pkg" >/dev/null 2>&1; then
          echo "Downloading: $pkg"
          apt-get download -qq "$pkg"
        else
          echo "Skipping virtual or missing package: $pkg"
        fi
      done

    - echo "All .deb files for $PACKAGE_NAME and dependencies are in $DEST_DIR"
      echo "All .deb files for $PACKAGE_NAME and dependencies are in $DEST_DIR"

  artifacts:
    paths:
      - /tmp/tmp

  # Cache apt downloads to speed up future jobs
  cache:
    key: apt-cache
    paths:
      - /var/cache/apt/archives

# Job for Ubuntu 22.04
# Ubuntu 22.04 job
ubuntu_22_04:
  <<: *download_template
  stage: download
  image: ubuntu:22.04

# Job for Ubuntu 24.04
# Ubuntu 24.04 job
ubuntu_24_04:
  <<: *download_template
  stage: download
  image: ubuntu:24.04