Newer
Older
#SWIFT_FILE: ebrains-spack-builds${CI_PIPELINE_ID}.tar.gz
SWIFT_FILE: ebrains-spack-builds.tar.gz
Athanasios Karmas
committed
#copy-files-to-swift:
# stage: upload
# script:
# - 'curl -H "X-Auth-Token: ${OS_TOKEN}" -X DELETE ${OBJSTORE}ebrains-spack-builds.tar.gz > curl_log.txt'
# - if [ $(cat curl_log.txt | grep "Unauthorized" |wc -l) -gt 0 ]; then echo "You need to refresh OpenStack token"; exit 1;fi;
# - tar czf ${SWIFT_FILE} packages/ repo.yaml spack.yaml
# - 'curl -H "X-Auth-Token: ${OS_TOKEN}" -i ${OBJSTORE} -X PUT -T ${SWIFT_FILE}'
# tags:
# - shell-runner
Athanasios Karmas
committed
#needs: [copy-files-to-swift]
before_script:
- oc login "$OPENSHIFT_SERVER" --token="$OPENSHIFT_TOKEN"
Athanasios Karmas
committed
- tar czf ${SWIFT_FILE} packages/ repo.yaml spack.yaml
- mkdir copy_folder
- mv ${SWIFT_FILE} copy_folder
script:
# create job description file
- chmod a+x create_job.sh
Athanasios Karmas
committed
- ./create_job.sh $BUILD_ENV $OP $SWIFT_FILE $CI_PIPELINE_ID
Athanasios Karmas
committed
## wait for job to finish https://stackoverflow.com/questions/5073453wait-for-kubernetes-job-to-complete-on-either-failure-success-using-command-line
- oc get job/simplejob${CI_PIPELINE_ID} -o=jsonpath='{.status}' -w && oc get job/simplejob${CI_PIPELINE_ID} -o=jsonpath='{.status.conditions[*].type}' | grep -i -E 'failed|complete' || echo 'Failed'
Athanasios Karmas
committed
# wait for job's pod to become available so as to copy from the gitlab runner to the OpenShift pod
# the necessary files that define the environment that spack needs to build
- while true; do x=$(oc get pods |grep simplejob${CI_PIPELINE_ID}|awk '{ print $3}');if [ $x == "Running" ]; then break; fi; sleep 1; done
- pod=$(oc get pods |grep simplejob${CI_PIPELINE_ID}|awk '{ print $1}')
- oc rsync copy_folder $pod:/opt/app-root/src
- while true; do x=$(oc get pods |grep simplejob${CI_PIPELINE_ID}|awk '{ print $3}');if [ $x != "Running" ]; then break; fi; sleep 10; done
Athanasios Karmas
committed
# when build job finishes get the logs
- oc logs jobs/simplejob${CI_PIPELINE_ID} | tee log.txt
# if spack install has failed, fail the pipeline
- if [ $(cat log.txt |grep "Error:"|wc -l) -gt 1 ]; then exit 1;fi;
Athanasios Karmas
committed
# delete the job from OpenShift as we have the logs here
Athanasios Karmas
committed
#- oc delete job simplejob${CI_PIPELINE_ID} || true