diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 38358c88ff486f003c198442152aad68c76e41a9..30df22db40bfa6ede64b03ff6829fa99a34e89b8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -315,6 +315,64 @@ test_ood_image: artifacts: reports: dotenv: instance.env + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" + when: always + +test_ood_image_mr: + stage: test + needs: [build_ood_image] + tags: + - build + script: + - openstack image set --accept $BUILT_OOD_IMAGE_ID + - FAILED=false + - | + eval $(ssh-agent -s) + chmod 400 "$SSH_PRIV_KEY" + ssh-add "$SSH_PRIV_KEY" + mkdir ~/.ssh + chmod 700 ~/.ssh + - | + cat > user_data.txt << OEOF + #!/bin/bash + cat > /etc/resolv.conf << EOF + search openstack.internal cm.cluster rc.uab.edu ib.cluster drac.cluster eth.cluster ib-hdr.cluster + nameserver 172.20.0.25 + EOF + echo "$DEV_KEY" >> /root/.ssh/authorized_keys + mkdir -p /run/shibboleth + chown shibd:shibd /run/shibboleth + OEOF + - > + export NEW_INSTANCE_ID=$(openstack server create + -c id -f value --image $BUILT_OOD_IMAGE_ID + --network $OOD_INSTANCE_NETWORK + --security-group ood-https-ports + --security-group allow-ssh + --user-data user_data.txt + --flavor $INSTANCE_FLAVOR + --wait + $OOD_INSTANCE_NAME) + - echo NEW_INSTANCE_ID=$NEW_INSTANCE_ID | tee -a instance.env + - openstack server add floating ip $NEW_INSTANCE_ID $FLOATING_IP + - > + curl --retry 10 --retry-delay 20 --retry-connrefused https://knightly.rc.uab.edu/Shibboleth.sso/Metadata --resolve knightly.rc.uab.edu:443:$FLOATING_IP -kf + || FAILED=true + - ssh -o StrictHostKeyChecking=no acctsvc@$FLOATING_IP '[ $(mount | grep "etc/auto" | wc -l) -eq 6 ]' || FAILED=true + - | + if [ "$FAILED" = true ]; then + if [ "${DELETE_WHEN_FAILED-true}" = true ]; then + openstack server delete $NEW_INSTANCE_ID + openstack image delete $BUILT_OOD_IMAGE_ID + fi + false + fi + artifacts: + reports: + dotenv: instance.env + rules: + - if: $CI_MERGE_REQUEST_ID deploy_review: stage: deploy