# SPDX-License-Identifier: CC0-1.0
# SPDX-FileCopyrightText: 2018-2022 Collabora, Ltd. and the Monado contributors

######################################
#      GENERATED - DO NOT EDIT       #
# see .gitlab-ci/ci.template instead #
######################################

variables:
  FDO_UPSTREAM_REPO: monado/monado

.templates_sha: &templates_sha 34039cd573a2df832d465bc9e4c5f543571f5241

include:
  # Debian
  - project: "freedesktop/ci-templates"
    ref: *templates_sha
    file: "/templates/debian.yml"
  # Ubuntu
  - project: "freedesktop/ci-templates"
    ref: *templates_sha
    file: "/templates/ubuntu.yml"
  # Arch
  - project: "freedesktop/ci-templates"
    ref: *templates_sha
    file: "/templates/arch.yml"


# Variables for build and usage of Debian bullseye image
.monado.variables.debian:bullseye:
  variables:
    FDO_DISTRIBUTION_VERSION: "bullseye"
    FDO_DISTRIBUTION_TAG: "2022-04-22.0"

# Variables for build and usage of Debian bullseye-ndk image
.monado.variables.debian:bullseye-ndk:
  variables:
    FDO_DISTRIBUTION_VERSION: "bullseye"
    FDO_DISTRIBUTION_TAG: "2022-03-16.0"
    FDO_REPO_SUFFIX: ndk

# Variables for build and usage of Ubuntu focal image
.monado.variables.ubuntu:focal:
  variables:
    FDO_DISTRIBUTION_VERSION: "20.04"
    FDO_DISTRIBUTION_TAG: "2022-04-22.0"

# Variables for build and usage of Ubuntu hirsute image
.monado.variables.ubuntu:hirsute:
  variables:
    FDO_DISTRIBUTION_VERSION: "21.04"
    FDO_DISTRIBUTION_TAG: "2022-04-22.0"

# Variables for build and usage of Ubuntu impish image
.monado.variables.ubuntu:impish:
  variables:
    FDO_DISTRIBUTION_VERSION: "21.10"
    FDO_DISTRIBUTION_TAG: "2022-04-22.0"

# Variables for build and usage of Arch rolling image
.monado.variables.arch:rolling:
  variables:
    FDO_DISTRIBUTION_VERSION: "rolling"
    FDO_DISTRIBUTION_TAG: "2022-04-22.0"

stages:
  - container_prep
  - build
  - package
  - reprepro
  - pages
  - deploy

###
# Container prep jobs
# Make Debian bullseye image
debian:bullseye:container_prep:
  stage: container_prep
  extends:
    - .monado.variables.debian:bullseye
    - .fdo.container-build@debian # from ci-templates
  only:
    changes:
      - .gitlab-ci/**/*
  variables:
    FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates clang-format cmake codespell curl debhelper devscripts doxygen dput-ng gettext-base git glslang-tools graphviz libavcodec-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 python3-click python3-pip unzip wget'
    FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/i386_and_proclamation_container_prep.sh'

# Make Debian bullseye-ndk image
debian:bullseye-ndk:container_prep:
  stage: container_prep
  extends:
    - .monado.variables.debian:bullseye-ndk
    - .fdo.container-build@debian # from ci-templates
  only:
    changes:
      - .gitlab-ci/**/*
  variables:
    FDO_DISTRIBUTION_PACKAGES: 'ca-certificates cmake default-jdk-headless git glslang-tools libeigen3-dev meson ninja-build pkg-config python3 unzip wget'
    FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/android_container_prep.sh'

# Make Ubuntu focal image
ubuntu:focal:container_prep:
  stage: container_prep
  extends:
    - .monado.variables.ubuntu:focal
    - .fdo.container-build@ubuntu # from ci-templates
  only:
    changes:
      - .gitlab-ci/**/*
  variables:
    FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libavcodec-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 unzip wget'

# Make Ubuntu hirsute image
ubuntu:hirsute:container_prep:
  stage: container_prep
  extends:
    - .monado.variables.ubuntu:hirsute
    - .fdo.container-build@ubuntu # from ci-templates
  only:
    changes:
      - .gitlab-ci/**/*
  variables:
    FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libavcodec-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 unzip wget'

# Make Ubuntu impish image
ubuntu:impish:container_prep:
  stage: container_prep
  extends:
    - .monado.variables.ubuntu:impish
    - .fdo.container-build@ubuntu # from ci-templates
  only:
    changes:
      - .gitlab-ci/**/*
  variables:
    FDO_DISTRIBUTION_PACKAGES: 'build-essential ca-certificates cmake curl debhelper devscripts dput-ng gettext-base git glslang-tools libavcodec-dev libbsd-dev libcjson-dev libdbus-1-dev libegl1-mesa-dev libeigen3-dev libgl1-mesa-dev libglvnd-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libhidapi-dev libopencv-dev libsdl2-dev libsystemd-dev libudev-dev libusb-1.0-0-dev libuvc-dev libv4l-dev libvulkan-dev libwayland-dev libx11-dev libx11-xcb-dev libxcb-randr0-dev libxrandr-dev libxxf86vm-dev ninja-build pandoc patch pkg-config python3 reprepro unzip wget'

# Make Arch rolling image
arch:rolling:container_prep:
  stage: container_prep
  extends:
    - .monado.variables.arch:rolling
    - .fdo.container-build@arch # from ci-templates
  only:
    changes:
      - .gitlab-ci/**/*
  variables:
    FDO_DISTRIBUTION_PACKAGES: 'check clang cmake diffutils doxygen eigen ffmpeg gcc git glfw-x11 glslang graphviz gtk3 hidapi libusb libxrandr mesa ninja opencv patch pkgconfig python3 qt5-base v4l-utils vulkan-headers vulkan-icd-loader'

###
# Container usage base jobs

# Base for using Debian bullseye image
.monado.image.debian:bullseye:
  extends:
    - .monado.variables.debian:bullseye
    - .fdo.distribution-image@debian # from ci-templates


# Base for using Debian bullseye-ndk image
.monado.image.debian:bullseye-ndk:
  extends:
    - .monado.variables.debian:bullseye-ndk
    - .fdo.suffixed-image@debian # from ci-templates


# Base for using Ubuntu focal image
.monado.image.ubuntu:focal:
  extends:
    - .monado.variables.ubuntu:focal
    - .fdo.distribution-image@ubuntu # from ci-templates


# Base for using Ubuntu hirsute image
.monado.image.ubuntu:hirsute:
  extends:
    - .monado.variables.ubuntu:hirsute
    - .fdo.distribution-image@ubuntu # from ci-templates


# Base for using Ubuntu impish image
.monado.image.ubuntu:impish:
  extends:
    - .monado.variables.ubuntu:impish
    - .fdo.distribution-image@ubuntu # from ci-templates


# Base for using Arch rolling image
.monado.image.arch:rolling:
  extends:
    - .monado.variables.arch:rolling
    - .fdo.distribution-image@arch # from ci-templates


# # # 
###
# Windows container-related jobs (prep and usage)

.monado.common_variables.windows:vs2022:
  inherit:
    default: false
  variables:
    MONADO_WIN_BASE_TAG: "20220518.0"
    MONADO_WIN_MAIN_TAG: "20220520.0"
    MONADO_BASE_IMAGE_PATH: "win2019/vs2022_base"
    MONADO_MAIN_IMAGE_PATH: "win2019/vs2022"

.monado.variables.windows:vs2022:
  inherit:
    default: false
  extends:
    - .monado.common_variables.windows:vs2022
  variables:
    MONADO_IMAGE_PATH: "$MONADO_MAIN_IMAGE_PATH"
    FDO_DISTRIBUTION_TAG: "$MONADO_WIN_MAIN_TAG"
    MONADO_IMAGE: "$CI_REGISTRY_IMAGE/$MONADO_IMAGE_PATH:$FDO_DISTRIBUTION_TAG"
    MONADO_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MONADO_IMAGE_PATH:$FDO_DISTRIBUTION_TAG"

# Shared container-building job
.monado.windows.container_prep:
  inherit:
    default: false
  tags:
    - windows
    - "1909"
    - shell
  variables:
    GIT_STRATEGY: fetch
  only:
    changes:
      - .gitlab-ci/**/*

  stage: container_prep
  script:
    - |
      .gitlab-ci\windows\monado_container.ps1 -RegistryUri "$CI_REGISTRY" -RegistryUsername "$CI_REGISTRY_USER" -UserImage "$MONADO_IMAGE" -UpstreamImage "$MONADO_UPSTREAM_IMAGE" -Dockerfile "$DOCKERFILE" -BaseImage "$MONADO_BASE_IMAGE" -BaseUpstreamImage "$MONADO_UPSTREAM_BASE_IMAGE" -Verbose

# This container just installs Visual C++ Build Tools.
win:container_prep:base:
  extends:
    - .monado.windows.container_prep
    - .monado.common_variables.windows:vs2022
  variables:
    DOCKERFILE: Dockerfile.vs2022
    MONADO_IMAGE_PATH: ${MONADO_BASE_IMAGE_PATH}
    FDO_DISTRIBUTION_TAG: "$MONADO_WIN_BASE_TAG"
    MONADO_IMAGE: "$CI_REGISTRY_IMAGE/$MONADO_IMAGE_PATH:$FDO_DISTRIBUTION_TAG"
    MONADO_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MONADO_IMAGE_PATH:$FDO_DISTRIBUTION_TAG"

# This container adds other deps
win:container_prep:
  extends:
    - .monado.windows.container_prep
    - .monado.variables.windows:vs2022
  needs:
    - win:container_prep:base
  variables:
    DOCKERFILE: Dockerfile.build
    MONADO_BASE_IMAGE: "$CI_REGISTRY_IMAGE/$MONADO_BASE_IMAGE_PATH:$MONADO_WIN_BASE_TAG"
    MONADO_UPSTREAM_BASE_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MONADO_BASE_IMAGE_PATH:$MONADO_WIN_BASE_TAG"

# Base job to use a Windows build container
.monado.image.windows:
  tags:
    - windows
    - "1909"
    - docker
  extends:
    - .monado.variables.windows:vs2022
  image: $MONADO_IMAGE
# Style check job
format-and-spellcheck:
  extends:
    - .monado.image.debian:bullseye

  stage: build
  script:
    - scripts/format-and-spellcheck.sh
  artifacts:
    paths:
      - patches/
    expire_in: 1 week
    when: on_failure

# Verify REUSE compliance
reuse:
  stage: build
  image:
    name: fsfe/reuse:latest
    entrypoint: [""]
  script:
    - reuse lint


debian:cmake:
  stage: build
  extends:
    - .monado.image.debian:bullseye
  before_script:
    - pushd doc/changes
    - proclamation build --overwrite vNEXT
    - popd

  script:
    - rm -rf build
    - cmake -GNinja -B build -S .
    - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt
    - ninja -C build
    - cd build && ctest --output-on-failure
  artifacts:
    paths:
      - build/doc/html/

debian:cmake-no-opencv:
  stage: build
  extends:
    - .monado.image.debian:bullseye
  script:
    - rm -rf build
    - cmake -GNinja -B build -S . -DBUILD_DOC=OFF -DXRT_HAVE_OPENCV=OFF
    - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt
    - ninja -C build
    - cd build && ctest --output-on-failure

debian:cmake-no-sdl2:
  stage: build
  extends:
    - .monado.image.debian:bullseye
  script:
    - rm -rf build
    - cmake -GNinja -B build -S . -DBUILD_DOC=OFF -DXRT_HAVE_SDL2=OFF
    - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt
    - ninja -C build
    - cd build && ctest --output-on-failure

debian:cmake-no-service:
  stage: build
  extends:
    - .monado.image.debian:bullseye
  script:
    - rm -rf build
    - cmake -GNinja -B build -S . -DBUILD_DOC=OFF -DXRT_FEATURE_SERVICE=OFF
    - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt
    - ninja -C build
    - cd build && ctest --output-on-failure

debian:cmake:32bit:
  stage: build
  extends:
    - .monado.image.debian:bullseye
  script:
    - rm -rf build
    - cmake -GNinja -B build -S . -DCMAKE_TOOLCHAIN_FILE=.gitlab-ci/i386.cmake -DXRT_HAVE_OPENCV=OFF
    - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt
    - ninja -C build
    - cd build && ctest --output-on-failure

ndk:armeabi-v7a:
  stage: build
  extends:
    - .monado.image.debian:bullseye-ndk
  script:
    - rm -rf build
    - cmake -GNinja -B build -S . -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=26 -DBUILD_DOC=OFF -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk/build/cmake/android.toolchain.cmake -DEigen3_DIR=/usr/lib/cmake/eigen3/ -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3
    - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt
    - ninja -C build

ndk:arm64-v8a:
  stage: build
  extends:
    - .monado.image.debian:bullseye-ndk
  script:
    - rm -rf build
    - cmake -GNinja -B build -S . -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=26 -DBUILD_DOC=OFF -DCMAKE_TOOLCHAIN_FILE=/opt/android-ndk/build/cmake/android.toolchain.cmake -DEigen3_DIR=/usr/lib/cmake/eigen3/ -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3
    - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt
    - ninja -C build

android:outOfProcessDebug:
  stage: build
  extends:
    - .monado.image.debian:bullseye-ndk
  before_script:
    # For caching gradle stuff
    - export GRADLE_USER_HOME=`pwd`/.gradlehome

  variables:
    GRADLE_ARGS: "-Porg.gradle.daemon=false "
  cache:
    paths:
      - .gradlehome/wrapper
      - .gradlehome/caches

  script:
    - cp .gitlab-ci/local.properties .
    - ./gradlew clean
    - ./gradlew assembleOutOfProcessDebug
  artifacts:
    paths:
      - src/xrt/targets/openxr_android/build/outputs/apk/outOfProcess

android:inProcessDebug:
  stage: build
  extends:
    - .monado.image.debian:bullseye-ndk
  before_script:
    # For caching gradle stuff
    - export GRADLE_USER_HOME=`pwd`/.gradlehome

  variables:
    GRADLE_ARGS: "-Porg.gradle.daemon=false "
  cache:
    paths:
      - .gradlehome/wrapper
      - .gradlehome/caches

  script:
    - cp .gitlab-ci/local.properties .
    - ./gradlew clean
    - ./gradlew assembleInProcessDebug
  artifacts:
    paths:
      - src/xrt/targets/openxr_android/build/outputs/apk/inProcess

android:outOfProcessRelease:
  stage: build
  extends:
    - .monado.image.debian:bullseye-ndk
  before_script:
    # For caching gradle stuff
    - export GRADLE_USER_HOME=`pwd`/.gradlehome

  variables:
    GRADLE_ARGS: "-Porg.gradle.daemon=false "
  cache:
    paths:
      - .gradlehome/wrapper
      - .gradlehome/caches

  script:
    - cp .gitlab-ci/local.properties .
    - ./gradlew clean
    - ./gradlew assembleOutOfProcessRelease
  artifacts:
    paths:
      - src/xrt/targets/openxr_android/build/outputs/apk/outOfProcess

android:inProcessRelease:
  stage: build
  extends:
    - .monado.image.debian:bullseye-ndk
  before_script:
    # For caching gradle stuff
    - export GRADLE_USER_HOME=`pwd`/.gradlehome

  variables:
    GRADLE_ARGS: "-Porg.gradle.daemon=false "
  cache:
    paths:
      - .gradlehome/wrapper
      - .gradlehome/caches

  script:
    - cp .gitlab-ci/local.properties .
    - ./gradlew clean
    - ./gradlew assembleInProcessRelease
  artifacts:
    paths:
      - src/xrt/targets/openxr_android/build/outputs/apk/inProcess

ubuntu:cmake:
  stage: build
  extends:
    - .monado.image.ubuntu:focal
  script:
    - rm -rf build
    - cmake -GNinja -B build -S . -DBUILD_DOC=OFF
    - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt
    - ninja -C build
    - cd build && ctest --output-on-failure

ubuntu:latest:cmake:
  stage: build
  extends:
    - .monado.image.ubuntu:impish
  script:
    - rm -rf build
    - cmake -GNinja -B build -S . -DBUILD_DOC=OFF
    - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt
    - ninja -C build
    - cd build && ctest --output-on-failure

arch:cmake:
  stage: build
  extends:
    - .monado.image.arch:rolling
  script:
    - rm -rf build
    - cmake -GNinja -B build -S .
    - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt
    - ninja -C build
    - cd build && ctest --output-on-failure

arch:cmake:clang:
  stage: build
  extends:
    - .monado.image.arch:rolling
  script:
    - rm -rf build
    - cmake -GNinja -B build -S . -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++
    - echo "Build Options:"; grep "^XRT_" build/CMakeCache.txt
    - ninja -C build
    - cd build && ctest --output-on-failure

# Windows build
windows:
  stage: build
  extends:
    - .monado.image.windows
  script:
    - ./.gitlab-ci/windows/monado_build.ps1
  artifacts:
    when: always
    paths:
      - install
      - build/Testing/Temporary

# Packaging
.monado.packaging.conditions:
  rules:
    # Only the default branch of the "upstream" repo.
    - if: "$CI_PROJECT_PATH == $FDO_UPSTREAM_REPO && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH"
      when: on_success
    # Otherwise, don't build packages.
    - when: never



debian:bullseye:package:
  extends:
    - .monado.image.debian:bullseye
    - .monado.packaging.conditions
  variables:
    GIT_STRATEGY: clone
    DEBFULLNAME: "Monado CI"
    DEBEMAIL: "ryan.pavlik@collabora.com"
    DISTRO: debian
    CODENAME: bullseye
    DEB_VERSION_SUFFIX: bpo11
  stage: package
  before_script:
    - git config --global user.name Monado CI
    - git config --global user.email ryan.pavlik@collabora.com
  script:
    # Prep the source tree
    - git clean -dfx
    # Call this script to build binary and source packages.
    # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints.
    - .gitlab-ci/build-and-submit-package.sh
  artifacts:
    paths:
      - "incoming/"
    expire_in: 2 days

ubuntu:focal:package:
  extends:
    - .monado.image.ubuntu:focal
    - .monado.packaging.conditions
  variables:
    GIT_STRATEGY: clone
    DEBFULLNAME: "Monado CI"
    DEBEMAIL: "ryan.pavlik@collabora.com"
    DISTRO: ubuntu
    CODENAME: focal
    DEB_VERSION_SUFFIX: ubuntu2004
  stage: package
  before_script:
    - git config --global user.name Monado CI
    - git config --global user.email ryan.pavlik@collabora.com
  script:
    # Prep the source tree
    - git clean -dfx
    # Call this script to build binary and source packages.
    # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints.
    - .gitlab-ci/build-and-submit-package.sh
  artifacts:
    paths:
      - "incoming/"
    expire_in: 2 days

ubuntu:hirsute:package:
  extends:
    - .monado.image.ubuntu:hirsute
    - .monado.packaging.conditions
  variables:
    GIT_STRATEGY: clone
    DEBFULLNAME: "Monado CI"
    DEBEMAIL: "ryan.pavlik@collabora.com"
    DISTRO: ubuntu
    CODENAME: hirsute
    DEB_VERSION_SUFFIX: ubuntu2104
  stage: package
  before_script:
    - git config --global user.name Monado CI
    - git config --global user.email ryan.pavlik@collabora.com
  script:
    # Prep the source tree
    - git clean -dfx
    # Call this script to build binary and source packages.
    # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints.
    - .gitlab-ci/build-and-submit-package.sh
  artifacts:
    paths:
      - "incoming/"
    expire_in: 2 days

ubuntu:impish:package:
  extends:
    - .monado.image.ubuntu:impish
    - .monado.packaging.conditions
  variables:
    GIT_STRATEGY: clone
    DEBFULLNAME: "Monado CI"
    DEBEMAIL: "ryan.pavlik@collabora.com"
    DISTRO: ubuntu
    CODENAME: impish
    DEB_VERSION_SUFFIX: ubuntu2110
  stage: package
  before_script:
    - git config --global user.name Monado CI
    - git config --global user.email ryan.pavlik@collabora.com
  script:
    # Prep the source tree
    - git clean -dfx
    # Call this script to build binary and source packages.
    # Can try locally by exporting the right variables and passing -B to get only a binary package to avoid complaints.
    - .gitlab-ci/build-and-submit-package.sh
  artifacts:
    paths:
      - "incoming/"
    expire_in: 2 days

reprepro:package:
  stage: reprepro
  extends:
    - .monado.image.ubuntu:impish

    - .monado.packaging.conditions
  needs:
    - debian:bullseye:package
    - ubuntu:focal:package
    - ubuntu:hirsute:package
    - ubuntu:impish:package
  script:
    - bash .gitlab-ci/reprepro.sh
  artifacts:
    paths:
      - "repo/"
    expire_in: 2 days

###
# Pages
###
pages:
  stage: pages
  only:
    - main@monado/monado
  needs:
    - debian:cmake
    - reprepro:package
  script:
    - mkdir -p public
    - mv build/doc/html/* public/
    - mv repo public/apt
  artifacts:
    paths:
      - public