diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e2956f7851f543dfa055197accc1744b1890b762..fe63fbaf681d3717fcfc6b88976c4e3a07eddb61 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -173,6 +173,47 @@ build_login_image: - if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "login" when: always +build_ood_image: + stage: build + tags: + - build + script: + - *update_ansible_repo + - *get_ansible_files + # packer vars for job env + - export PKR_VAR_flavor="${OOD_BUILD_FLAVOR:-$PKR_VAR_flavor}" + - export PKR_VAR_build_instance_name="${BUILD_TARGET}-${EXT_REPO_HEAD}" + - export PKR_VAR_image_date_suffix=false + - > + curl --header "PRIVATE-TOKEN: ${ANSIBLE_VAR_TOKEN}" + "${CI_API_V4_URL}/projects/2836/repository/files/knightly/raw?ref=main" + -o CRI_XCBC/group_vars/knightly + - 'sed -i -E "s/(lts_access_key: ).*/\1\"${AWS_ACCESS_KEY_ID}\"/" CRI_XCBC/group_vars/knightly' + - 'sed -i -E "s/(lts_secret_key: ).*/\1\"${AWS_SECRET_ACCESS_KEY}\"/" CRI_XCBC/group_vars/knightly' + - 'sed -i -E "s/(user_register_app_key: ).*/\1\"${SELF_REG_APP_KEY}\"/" CRI_XCBC/group_vars/knightly' + - 'sed -i -E "s/(celery_user_password: ).*/\1\"${CELERY_PASSWD}\"/" CRI_XCBC/group_vars/knightly' + - 'sed -i -E "s|(ssh_pub_key: ).*|\1\"{{ lookup(''file'', ''${SSH_PUB_KEY}'') }}\"|" CRI_XCBC/group_vars/knightly' + - | + if [ $CI_PIPELINE_SOURCE == 'merge_request_event' ]; then + export PKR_VAR_image_name="ood-PR-${CI_MERGE_REQUEST_IID}" + elif [ $CI_PIPELINE_SOURCE == 'schedule' ]; then + export PKR_VAR_image_name="ood-${BUILD_DATE}" + fi + # packer commands + - packer init openstack-ood + - packer validate openstack-ood + - packer build -machine-readable openstack-ood | tee ood_build.log + - export BUILT_OOD_IMAGE_ID=$(grep 'Image:' ood_build.log | awk '{print $4}') + - echo BUILT_OOD_IMAGE_ID=${BUILT_OOD_IMAGE_ID} | tee -a $CI_PROJECT_DIR/image.env + # set image properties with repo state + - openstack image set --property EXT_PR_SRC_REPO=${EXT_PR_SRC_REPO} --property EXT_PR_SRC_BRANCH_SHA=${EXT_PR_SRC_BRANCH_SHA} --property EXT_PR_TARGET_REPO=${EXT_PR_TARGET_REPO} --property EXT_PR_TARGET_BRANCH_SHA=${EXT_PR_TARGET_BRANCH_SHA} --property PACKER_IMAGE_HEAD=${CI_COMMIT_SHORT_SHA} ${BUILT_OOD_IMAGE_ID} + artifacts: + reports: + dotenv: image.env + rules: + - if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "ood" + when: always + deploy_http_proxy_node: stage: deploy environment: