diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5ce1f8c81186426ff95931416ae585073e04fbe9..3c48ecbef80461a3aef30c2a4536c8524c7dbb6b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -43,29 +43,31 @@ workflow: .update_ansible_repo: &update_ansible_repo - *get_build_date - | - if [ ! -d $CI_PROJECT_DIR/CRI_XCBC ]; then - git clone https://github.com/uabrc/CRI_XCBC.git - cd CRI_XCBC - git remote add upstream https://github.com/jprorama/CRI_XCBC.git + export EXT_REPO_DIR=$(basename -s .git $EXT_PR_TARGET_REPO) + if [ ! -d $CI_PROJECT_DIR/$EXT_REPO_DIR ]; then + git clone ${EXT_PR_TARGET_REPO} ${EXT_REPO_DIR} + cd ${EXT_REPO_DIR} + git remote add upstream ${EXT_PR_SRC_REPO} cd .. fi - - cd CRI_XCBC + - cd ${EXT_REPO_DIR} - git config user.name "${GIT_AUTHOR_NAME}" - git config user.email "${GIT_AUTHOR_EMAIL}" - - git fetch origin uab-prod - - git fetch upstream dev - - git checkout uab-prod - - git merge origin/uab-prod + - git checkout ${EXT_PR_TARGET_BRANCH} + - git fetch origin ${EXT_PR_TARGET_BRANCH} + - git merge origin/${EXT_PR_TARGET_BRANCH} - git checkout -b integration - - git merge upstream/dev - - export CRI_XCBC_HEAD=$(git rev-parse --short HEAD) - - export CRI_XCBC_dev=$(git rev-parse --short upstream/dev) - - export CRI_XCBC_prod=$(git rev-parse --short origin/uab-prod) + - git fetch upstream ${EXT_PR_SRC_BRANCH} + - git merge upstream/${EXT_PR_SRC_BRANCH} + # export vars into job artifacts + - export EXT_REPO_HEAD=$(git rev-parse --short HEAD) + - export EXT_PR_SRC_BRANCH_SHA=$(git rev-parse --short upstream/${EXT_PR_SRC_BRANCH}) + - export EXT_PR_TARGET_BRANCH_SHA=$(git rev-parse --short origin/${EXT_PR_TARGET_BRANCH}) - cd .. - export PACKER_IMAGE_HEAD=$(git rev-parse --short HEAD) - - echo CRI_XCBC_HEAD=${CRI_XCBC_HEAD} | tee -a $CI_PROJECT_DIR/image.env - - echo CRI_XCBC_dev=${CRI_XCBC_dev} | tee -a $CI_PROJECT_DIR/image.env - - echo CRI_XCBC_prod=${CRI_XCBC_prod} | tee -a $CI_PROJECT_DIR/image.env + - echo EXT_REPO_HEAD=${EXT_REPO_HEAD} | tee -a $CI_PROJECT_DIR/image.env + - echo EXT_PR_SRC_BRANCH_SHA=${EXT_PR_SRC_BRANCH_SHA} | tee -a $CI_PROJECT_DIR/image.env + - echo EXT_PR_TARGET_BRANCH_SHA=${EXT_PR_TARGET_BRANCH_SHA} | tee -a $CI_PROJECT_DIR/image.env - echo PACKER_IMAGE_HEAD=${PACKER_IMAGE_HEAD} | tee -a $CI_PROJECT_DIR/image.env .get_ansible_files: &get_ansible_files @@ -77,7 +79,7 @@ workflow: - *get_ansible_files # packer vars for job env - export PKR_VAR_flavor="${PROXY_BUILD_FLAVOR:-$PKR_VAR_flavor}" - - export PKR_VAR_build_instance_name="${BUILD_TARGET}-${CRI_XCBC_HEAD}" + - 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 @@ -88,21 +90,22 @@ workflow: # Ansible var overrides - | if [ -n "${PROXY_ENABLE_VAR}" ]; then - sed -i -E "s/(${PROXY_ENABLE_VAR}: ).*/\1true/" CRI_XCBC/group_vars/all + sed -i -E "s/(${PROXY_ENABLE_VAR}: ).*/\1true/" $EXT_REPO_DIR/group_vars/all fi - - 'sed -i -E "s|(s3_endpoint: ).*|\1\"${S3_ENDPOINT}\"|" CRI_XCBC/group_vars/all' - - 'sed -i -E "s/(lts_access_key: ).*/\1\"${AWS_ACCESS_KEY_ID}\"/" CRI_XCBC/group_vars/all' - - 'sed -i -E "s/(lts_secret_key: ).*/\1\"${AWS_SECRET_ACCESS_KEY}\"/" CRI_XCBC/group_vars/all' - - 'sed -i -E "s/(s3_shibboleth_bucket_name: ).*/\1\"${S3_SHIBBOLETH_BUCKET_NAME}\"/" CRI_XCBC/group_vars/all' - - 'sed -i -E "s/(s3_shibboleth_object_name: ).*/\1\"${S3_SHIBBOLETH_OBJECT_NAME}\"/" CRI_XCBC/group_vars/all' - - 'sed -i -E "s|(ssh_pub_key: ).*|\1\"{{ lookup(''file'', ''${SSH_PUB_KEY}'') }}\"|" CRI_XCBC/group_vars/all' + - 'sed -i -E "s|(s3_endpoint: ).*|\1\"${S3_ENDPOINT}\"|" $EXT_REPO_DIR/group_vars/all' + - 'sed -i -E "s/(lts_access_key: ).*/\1\"${AWS_ACCESS_KEY_ID}\"/" $EXT_REPO_DIR/group_vars/all' + - 'sed -i -E "s/(lts_secret_key: ).*/\1\"${AWS_SECRET_ACCESS_KEY}\"/" $EXT_REPO_DIR/group_vars/all' + - 'sed -i -E "s/(s3_shibboleth_bucket_name: ).*/\1\"${S3_SHIBBOLETH_BUCKET_NAME}\"/" $EXT_REPO_DIR/group_vars/all' + - 'sed -i -E "s/(s3_shibboleth_object_name: ).*/\1\"${S3_SHIBBOLETH_OBJECT_NAME}\"/" $EXT_REPO_DIR/group_vars/all' + - 'sed -i -E "s|(ssh_pub_key: ).*|\1\"{{ lookup(''file'', ''${SSH_PUB_KEY}'') }}\"|" $EXT_REPO_DIR/group_vars/all' # packer commands - packer init openstack-proxy - packer validate openstack-proxy - packer build -machine-readable openstack-proxy | tee proxy_build.log - export BUILT_PROXY_IMAGE_ID=$(grep 'Image:' proxy_build.log | awk '{print $4}') - echo BUILT_PROXY_IMAGE_ID=${BUILT_PROXY_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_PROXY_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_PROXY_IMAGE_ID} artifacts: reports: dotenv: image.env