diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5199656d78e723c62f174a40ac169b7b6deb3b86..71058c757b7e627be77e44545d47aba47ed7fd7f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -110,15 +110,13 @@ workflow: reports: dotenv: image.env -build_compute_image: - stage: build - tags: - - build +.build_compute_image_template: &build_compute_image_template script: - *update_ansible_repo - *get_ansible_files - - export PKR_VAR_flavor="${COMPUTE_BUILD_FLAVOR:-$PKR_VAR_flavor}" - - export PKR_VAR_build_instance_name="${BUILD_TARGET}-${CRI_XCBC_HEAD}" + # packer vars for job env + - export PKR_VAR_flavor="${PROXY_BUILD_FLAVOR:-$PKR_VAR_flavor}" + - export PKR_VAR_build_instance_name="${BUILD_TARGET}-${EXT_REPO_HEAD}" - export PKR_VAR_image_date_suffix=false - | if [ $CI_PIPELINE_SOURCE == 'merge_request_event' ]; then @@ -126,18 +124,34 @@ build_compute_image: elif [ $CI_PIPELINE_SOURCE == 'schedule' ]; then export PKR_VAR_image_name="${BUILD_TARGET}-${BUILD_DATE}" fi + # Ansible var overrides + - | # packer commands - - packer init openstack-compute - - packer validate openstack-compute - - packer build -machine-readable openstack-compute | tee compute_build.log - - export BUILT_COMPUTE_IMAGE_ID=$(grep 'Image:' compute_build.log | awk '{print $4}') + - packer init openstack-proxy + - packer validate openstack-proxy + - packer build -machine-readable openstack-proxy | tee proxy_build.log + - export BUILT_COMPUTE_IMAGE_ID=$(grep 'Image:' proxy_build.log | awk '{print $4}') - echo BUILT_COMPUTE_IMAGE_ID=${BUILT_COMPUTE_IMAGE_ID} | tee -a $CI_PROJECT_DIR/image.env - - openstack image set --property CRI_XCBC_prod=${CRI_XCBC_prod} --property CRI_XCBC_dev=${CRI_XCBC_dev} --property PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} ${BUILT_COMPUTE_IMAGE_ID} + # 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=${PACKER_IMAGE_HEAD} ${BUILT_COMPUTE_IMAGE_ID} + artifacts: + reports: + dotenv: image.env + + +build_compute_image: + stage: build + environment: + name: $ENV + tags: + - build + variables: + PROXY_ENABLE_VAR: "enable_compute" + <<: *build_compute_image_template rules: - - if: $PIPELINE_TARGET == "build" + - if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "http-proxy" when: always - build_http_proxy_image: stage: build environment: