From a065953e1bb3ddaa4b2a5669b57bb0af36fa24f2 Mon Sep 17 00:00:00 2001
From: George Sedov <george.sedov@desy.de>
Date: Thu, 9 Mar 2023 17:54:01 +0100
Subject: [PATCH] Update .gitlab-ci.yml

---
 .gitlab-ci.yml | 411 ++-----------------------------------------------
 1 file changed, 16 insertions(+), 395 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 43f76f4b7..e85ca11d0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,401 +1,22 @@
-include:
-  - local: deploy/build_env/services-linux/gitlab-ci-build-docker.yml
-  - local: deploy/build_env/services-windows/gitlab-ci-build-docker.yml
-  - local: deploy/build_env/centos/gitlab-ci-build-docker.yml
-  - local: deploy/build_env/debians/gitlab-ci-build-docker.yml
-  - local: deploy/build_env/ubuntu/gitlab-ci-build-docker.yml
-  - local: deploy/build_env/manylinux2014/gitlab-ci-build-docker.yml
-  - local: deploy/build_env/site/gitlab-ci-build-docker.yml
-  - local: deploy/secondary_services/fluentd_elastic/gitlab-ci-build-docker.yml
-
-.go-cache:
-  variables:
-    GOPATH: $CI_PROJECT_DIR/.go
-  before_script:
-    - mkdir -p .go
-  cache:
-    paths:
-      - .go/pkg/mod/
-
-.client-packages:
-  stage: build
-  script:
-    - mkdir $CI_PROJECT_DIR/build
-    - cd $CI_PROJECT_DIR/build
-    - PACKAGE_UP=${PACKAGE_TYPE^^}
-    - PACKAGE_LOW=${PACKAGE_TYPE,,}
-    - >
-      if [ -z "$WITH_LIBFABRIC" ]; then
-        ENABLE_LIBFABRIC="OFF"
-      else
-        ENABLE_LIBFABRIC="ON"
-      fi
-    - >
-      if [ -z "$WITH_PYTHON2" ]; then
-        BUILD_PYTHON2="OFF"
-      else
-        BUILD_PYTHON2="ON"
-      fi
-    - cmake -DCMAKE_BUILD_TYPE="Release" -DENABLE_LIBFABRIC=$ENABLE_LIBFABRIC -DINSTALL_EXAMPLES=ON -DBUILD_CLIENTS_ONLY=ON -DPACKAGE_RELEASE_SUFFIX=$OS_SUFFIX -DBUILD_PYTHON=OFF -DCPACK_PACKAGE_NAME="asapo-devel" -DCPACK_GENERATOR=$PACKAGE_UP ..
-    - make -j 4
-    - make package
-    - rm -f CMakeCache.txt
-    - cmake -DCMAKE_BUILD_TYPE="Release" -DENABLE_LIBFABRIC=$ENABLE_LIBFABRIC -DBUILD_CLIENTS_ONLY=ON -DNUMPY_VERSION=0 -DBUILD_PYTHON=ON -DPACKAGE_RELEASE_SUFFIX=$OS_SUFFIX -DBUILD_PYTHON_PACKAGES="source;${PACKAGE_LOW}" -DBUILD_PYTHON2_PACKAGES=$BUILD_PYTHON2 -DBUILD_PYTHON_DOCS=OFF ..
-    - make -j 1
-    - mkdir -p $CI_PROJECT_DIR/linux_packages/$PACKAGE_FOLDER
-    - cp $CI_PROJECT_DIR/build/asapo-devel* $CI_PROJECT_DIR/linux_packages/$PACKAGE_FOLDER
-    - cp $CI_PROJECT_DIR/build/*/api/python/dist_linux/dist/* $CI_PROJECT_DIR/linux_packages/$PACKAGE_FOLDER
-  tags:
-    - kubernetes-executor
-  rules:
-    - when: on_success
-  artifacts:
-    paths:
-      - linux_packages
-    expire_in: 3 hrs
-
-.client-packages-manylinux:
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-packages-manylinux-build-env:latest
-    entrypoint: [""]
-  stage: build
+# The Docker image that will be used to build your app
+image: $CI_REGISTRY_IMAGE/asapo-site-build-env:latest
+# Functions that should be executed before the build script is run
+pages:
   script:
-    - python_bin=$PYTHON_PATH/bin/python
-    - pip_bin=$PYTHON_PATH/bin/pip
-    - $pip_bin install cython numpy==$NUMPY_VERSION
     - mkdir $CI_PROJECT_DIR/build
     - cd $CI_PROJECT_DIR/build
-    - cmake -DENABLE_LIBFABRIC=ON -DCMAKE_BUILD_TYPE="Release" -DBUILD_CLIENTS_ONLY=ON -DPython_EXECUTABLE=$python_bin -DBUILD_PYTHON_PACKAGES=source -DBUILD_PYTHON2_PACKAGES=OFF -DNUMPY_VERSION=$NUMPY_VERSION ..
-    - cd $CI_PROJECT_DIR/build/consumer/api/python/dist_linux
-    - make python-dist-consumer
-    - $pip_bin wheel dist/*.tar.gz --no-deps
-    - cd $CI_PROJECT_DIR/build/producer/api/python/dist_linux
-    - make python-dist-producer
-    - $pip_bin wheel dist/*.tar.gz --no-deps
-    - mkdir -p $CI_PROJECT_DIR/wheel_packages/$WHEEL_FOLDER
-    - cp $CI_PROJECT_DIR/build/*/api/python/dist_linux/*.whl $CI_PROJECT_DIR/wheel_packages/$WHEEL_FOLDER
-  tags:
-    - kubernetes-executor
-  rules:
-    - when: on_success
+    - cmake -DCMAKE_BUILD_TYPE="Release" -DBUILD_CLIENTS_ONLY=ON
+      -DBUILD_PYTHON=OFF -DBUILD_ASAPO_SITE=ON -DLIBCURL_DIR=/curl
+      -DPython_EXECUTABLE="noop" ..
+    - cd docs/site
+    - npm install
+    - make site
+    - mv ./build /public
   artifacts:
     paths:
-      - wheel_packages
-    expire_in: 3 hrs
-
-build-services-linux-debug:
-  extends: .go-cache
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-services-linux-build-env:latest
-    entrypoint: [""]
-  stage: build
-  script:
-    - mkdir $CI_PROJECT_DIR/build
-    - cd $CI_PROJECT_DIR/build
-    - cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON -DBUILD_INTEGRATION_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_CONSUMER_TOOLS=ON -DENABLE_LIBFABRIC=ON -DENABLE_LIBFABRIC_LOCALHOST=ON -DBUILD_EVENT_MONITOR_PRODUCER=ON -DSTOP_BUILD_ON_WARNINGS=ON -DENABLE_NEW_RECEIVER_MONITORING=ON ..
-    - make -j 4
-  tags:
-    - kubernetes-executor
-  rules:
-    - when: always
-  artifacts:
-    paths:
-      - build
-    exclude:
-      - build/**/CMakeFiles/**/*.o
-      - build/**/CMakeFiles/**/*.gcno
-      - build/**/CMakeFiles/**/*.gcda
-      - build/**/CMakeFiles/**/*.objlib
-      - build/**/CMakeFiles/**/*.includecache
-      - build/**/*.a
-    expire_in: 3 hrs
-
-test-services-linux-debug:
-  extends: .go-cache
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-services-linux-build-env:latest
-  stage: test
-  script:
-    - bash /services_start.sh
-    # - cd $CI_PROJECT_DIR/build/tests/automatic/common_scripts
-    # - bash start_services.sh
-    - cd $CI_PROJECT_DIR/build
-    - ctest --no-compress-output -T Test -L "unit|memcheck_unit|coverage" --output-on-failure --output-junit testResult.xml
-  tags:
-    - kubernetes-executor
-  rules:
-    - when: on_success
-  dependencies:
-    - build-services-linux-debug
-  artifacts:
-    reports:
-      junit: build/testResult.xml
-
-build-services-linux-release:
-  extends: .go-cache
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-services-linux-build-env:latest
-    entrypoint: [""]
-  variables:
-    CI_REGISTRY_IMAGE_USERNAME: "asapo-dev-registry"
-    CI_REGISTRY_IMAGE_PASSWORD: ${asapo_dev_registry_password}
-  stage: build
-  script:
-    - mkdir $CI_PROJECT_DIR/build
-    - cd $CI_PROJECT_DIR/build
-    - cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=ON -DBUILD_CONSUMER_TOOLS=ON -DBUILD_BROKER=ON -DBUILD_INTEGRATION_TESTS=ON -DENABLE_LIBFABRIC=ON -DBUILD_CPP_DOCS=ON -DBUILD_EVENT_MONITOR_PRODUCER=ON -DSTOP_BUILD_ON_WARNINGS=ON -DENABLE_NEW_RECEIVER_MONITORING=ON ..
-    - make -j 4
-  tags:
-    - kubernetes-executor
-  rules:
-    - when: on_success
-  artifacts:
-    paths:
-      - build
-    exclude:
-      - build/**/CMakeFiles/**/*
-      - build/**/*.a
-    expire_in: 3 hrs
-
-build-packages-centos7:
-  extends: .client-packages
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-packages-centos7-build-env:latest
-    entrypoint: [""]
-  variables:
-    PACKAGE_TYPE: "RPM"
-    WITH_LIBFABRIC: "YES"
-    WITH_PYTHON2: "YES"
-    OS_SUFFIX: "1.el7"
-    PACKAGE_FOLDER: "centos7.9.2009"
-
-build-packages-centos8:
-  extends: .client-packages
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-packages-centos8-build-env:latest
-    entrypoint: [""]
-  variables:
-    PACKAGE_TYPE: "RPM"
-    WITH_LIBFABRIC: "YES"
-    OS_SUFFIX: "1.el8"
-    PACKAGE_FOLDER: "centos8.3.2011"
-
-build-packages-debian9:
-  extends: .client-packages
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-packages-debian9-build-env:latest
-    entrypoint: [""]
-  variables:
-    PACKAGE_TYPE: "DEB"
-    WITH_PYTHON2: "YES"
-    OS_SUFFIX: "debian9.13"
-    PACKAGE_FOLDER: "debian9.13"
-
-build-packages-debian10:
-  extends: .client-packages
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-packages-debian10-build-env:latest
-    entrypoint: [""]
-  variables:
-    PACKAGE_TYPE: "DEB"
-    WITH_LIBFABRIC: "YES"
-    WITH_PYTHON2: "YES"
-    OS_SUFFIX: "debian10.11"
-    PACKAGE_FOLDER: "debian10.11"
-
-build-packages-debian11:
-  extends: .client-packages
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-packages-debian11-build-env:latest
-    entrypoint: [""]
-  variables:
-    PACKAGE_TYPE: "DEB"
-    WITH_LIBFABRIC: "YES"
-    OS_SUFFIX: "debian11.3"
-    PACKAGE_FOLDER: "debian11.3"
-
-build-packages-ubuntu1804:
-  extends: .client-packages
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-packages-ubuntu1804-build-env:latest
-    entrypoint: [""]
-  variables:
-    PACKAGE_TYPE: "DEB"
-    WITH_LIBFABRIC: "YES"
-    OS_SUFFIX: "ubuntu18.04"
-    PACKAGE_FOLDER: "ubuntu18.04"
-
-build-packages-ubuntu2004:
-  extends: .client-packages
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-packages-ubuntu2004-build-env:latest
-    entrypoint: [""]
-  variables:
-    PACKAGE_TYPE: "DEB"
-    WITH_LIBFABRIC: "YES"
-    OS_SUFFIX: "ubuntu20.04"
-    PACKAGE_FOLDER: "ubuntu20.04"
-
-build-packages-python36:
-  extends: .client-packages-manylinux
-  variables:
-    PYTHON_PATH: /opt/python/cp36-cp36m
-    NUMPY_VERSION: 1.12.1
-    WHEEL_FOLDER: python36
-
-build-packages-python37:
-  extends: .client-packages-manylinux
-  variables:
-    PYTHON_PATH: /opt/python/cp37-cp37m
-    NUMPY_VERSION: 1.14.5
-    WHEEL_FOLDER: python37
-
-build-packages-python38:
-  extends: .client-packages-manylinux
-  variables:
-    PYTHON_PATH: /opt/python/cp38-cp38
-    NUMPY_VERSION: 1.17.3
-    WHEEL_FOLDER: python38
-
-build-packages-python39:
-  extends: .client-packages-manylinux
-  variables:
-    PYTHON_PATH: /opt/python/cp39-cp39
-    NUMPY_VERSION: 1.19.3
-    WHEEL_FOLDER: python39
-
-build-packages-python310:
-  extends: .client-packages-manylinux
-  variables:
-    PYTHON_PATH: /opt/python/cp310-cp310
-    NUMPY_VERSION: 1.23.4
-    WHEEL_FOLDER: python310
-
-.build-services-docker-template:
-  image:
-    name: gcr.io/kaniko-project/executor:debug
-    entrypoint: [""]
-  stage: deploy
-  script:
-    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
-    - services="broker authorizer discovery receiver file-transfer"
-    - >
-      for service in $services; do
-          service_dir=${service//"-"/"_"}
-          /kaniko/executor --cache=false --context $CI_PROJECT_DIR/build/${service_dir} --dockerfile $CI_PROJECT_DIR/build/${service_dir}/Dockerfile --destination $CI_REGISTRY_IMAGE/asapo-${service}${CONTAINER_TAG}
-      done
-    - /kaniko/executor --cache=false --context $CI_PROJECT_DIR/build/monitoring/monitoring_server --dockerfile $CI_PROJECT_DIR/monitoring/monitoring_server/docker/Dockerfile --destination $CI_REGISTRY_IMAGE/asapo-monitoring-server${CONTAINER_TAG}
-    - /kaniko/executor --cache=false --context $CI_PROJECT_DIR/monitoring/monitoring_ui --dockerfile $CI_PROJECT_DIR/monitoring/monitoring_ui/Dockerfile --destination $CI_REGISTRY_IMAGE/asapo-monitoring-ui${CONTAINER_TAG}
-    - /kaniko/executor --cache=false --context $CI_PROJECT_DIR/build/deploy/asapo_services --dockerfile $CI_PROJECT_DIR/build/deploy/asapo_services/Dockerfile --destination $CI_REGISTRY_IMAGE/asapo-cluster${CONTAINER_TAG} --destination $CI_REGISTRY_IMAGE/asapo-cluster${CONTAINER_TAG_LATEST}
-  tags:
-    - kubernetes-executor
-  dependencies:
-    - build-services-linux-release
-
-build-services-docker-dev:
-  extends: .build-services-docker-template
-  rules:
-    - if: $CI_COMMIT_REF_NAME == "develop"
-      when: on_success
-    - when: never
-  variables:
-    CONTAINER_TAG: "-dev:${CI_COMMIT_SHORT_SHA}"
-    CONTAINER_TAG_LATEST: "-dev:latest"
-
-build-services-docker-release:
-  extends: .build-services-docker-template
-  only:
-    - tags
-  variables:
-    CONTAINER_TAG: ":${CI_COMMIT_TAG}"
-    CONTAINER_TAG_LATEST: ":latest"
-
-.upload-client-packages-template:
-  image:
-    name: $CI_REGISTRY_IMAGE/asapo-services-linux-build-env:latest
-    entrypoint: [""]
-  stage: deploy
-  variables:
-    GIT_STRATEGY: none
-  script:
-    - >
-      for dist in $(ls $CI_PROJECT_DIR/linux_packages); do
-        files="asapo-devel python-asapo python3-asapo"
-        for file in $files; do
-          if ls $CI_PROJECT_DIR/linux_packages/${dist}/${file}* 1> /dev/null 2>&1; then
-            PACKAGE_ID=$(curl -s -G --header "JOB-TOKEN: $CI_JOB_TOKEN"  ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages -d package_name=$file-$dist -d package_type=generic | jq -c ".[] | select(.pipeline.ref | contains(\"$CI_COMMIT_REF_NAME\")) | (.id)")
-            if ! [ -z "$PACKAGE_ID" ]; then
-              echo Removing Package ${PACKAGE_ID}
-              curl --request DELETE --header "JOB-TOKEN: $CI_JOB_TOKEN" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/${PACKAGE_ID}"
-            fi
-            for distfile in $(ls $CI_PROJECT_DIR/linux_packages/$dist/${file}*); do
-              DIST_FILE=${distfile//"~"/"_"}
-              curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file $distfile "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/$file-$dist/$DIST_VERSION/$(basename $DIST_FILE)"
-            done
-          fi
-        done
-      done
-  tags:
-    - kubernetes-executor
-  dependencies:
-    - build-packages-centos7
-    - build-packages-centos8
-    - build-packages-debian9
-    - build-packages-debian10
-    - build-packages-debian11
-    - build-packages-ubuntu1804
-    - build-packages-ubuntu2004
-
-upload-client-packages-dev:
-  extends: .upload-client-packages-template
-  rules:
-    - if: $CI_COMMIT_REF_NAME == "develop"
-      when: on_success
-    - when: never
-  variables:
-    DIST_VERSION: "100.0.dev"
-
-upload-client-packages-release:
-  extends: .upload-client-packages-template
-  only:
-    - tags
-  variables:
-    DIST_VERSION: ${CI_COMMIT_TAG}
-
-upload-python-packages:
-  image:
-    name: python:latest
-    entrypoint: [""]
-  stage: deploy
-  variables:
-    GIT_STRATEGY: none
-  script:
-    - mkdir -p ~/.ssh
-    - echo "$NIMS_SSH_KNOWN_HOST" >> ~/.ssh/known_hosts
-    - chmod 600 $NIMS_SSH_PRIVATE_KEY
-    - pip install twine
-    - >
-      for pac_id in $(curl -s -G --header "JOB-TOKEN: $CI_JOB_TOKEN"  ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages -d package_type=pypi | python -c "import sys, json; [print(x['id']) for x in json.load(sys.stdin) if ('pipeline' in x) and ('ref' in x['pipeline']) and (x['pipeline']['ref'] == '$CI_COMMIT_REF_NAME')]"); do
-        echo Removing package ${pac_id}
-        curl --request DELETE --header "JOB-TOKEN: $CI_JOB_TOKEN" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/${pac_id}"
-      done
-    - >
-      for dist in $(ls $CI_PROJECT_DIR/wheel_packages); do
-          TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi $CI_PROJECT_DIR/wheel_packages/${dist}/*
-          echo "put $CI_PROJECT_DIR/wheel_packages/${dist}/* asapo/linux_wheels/" | sftp -vvvv -i $NIMS_SSH_PRIVATE_KEY -P 2022 asapo@it-fs5.desy.de
-      done
-    - wget -q -O- http://it-fs5.desy.de/cgi-bin/asapoSync.cgi
-  tags:
-    - DESY-intern
+      # The folder that contains the files to be exposed at the Page URL
+      - public
   rules:
-    - if: $CI_COMMIT_REF_NAME == "develop"
-      when: on_success
-    - if: $CI_COMMIT_TAG
-      when: on_success
-    - when: never
-  dependencies:
-    - build-packages-python36
-    - build-packages-python37
-    - build-packages-python38
-    - build-packages-python39
-    - build-packages-python310
+    # This ensures that only pushes to the default branch will trigger
+    # a pages deploy
+    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
-- 
GitLab