diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 343a0d6d955dbc36ed4e82fb5591fb2d7cc1d97c..0251ff926d4f492e45f6ec0ae2bacb9a75e3785b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,7 +18,7 @@ variables:
- oc project $OC_PROJECT
# create job description file
- chmod a+x create_job.sh
- - ./create_job.sh $CI_PIPELINE_ID $BUILD_ENV_DOCKER_IMAGE update $INSTALLATION_ROOT $SPACK_VERSION $SPACK_ENV $CI_COMMIT_BRANCH $RELEASE_NAME $LAB_KERNEL_ROOT
+ - ./create_job.sh $CI_PIPELINE_ID $BUILD_ENV_DOCKER_IMAGE $INSTALLATION_ROOT $SPACK_VERSION $SPACK_ENV $CI_COMMIT_BRANCH $RELEASE_NAME $LAB_KERNEL_ROOT
- cat simplejob.yml
# start the deploy job
- oc create -f simplejob.yml
diff --git a/create_job.sh b/create_job.sh
index dffe9131df8b0c817004541dbc5669f60699d374..9768515866c0cd588f5ea241d57d9cbb29993b9c 100644
--- a/create_job.sh
+++ b/create_job.sh
@@ -2,20 +2,19 @@
# ===========================================================================================================
# title : create_job.sh
-# usage : ./create_job.sh $OC_JOB_ID $BUILD_ENV_DOCKER_IMAGE $OP $INSTALLATION_ROOT $SPACK_VERSION
+# usage : ./create_job.sh $OC_JOB_ID $BUILD_ENV_DOCKER_IMAGE $INSTALLATION_ROOT $SPACK_VERSION
# $SPACK_ENV $BRANCH $RELEASE_NAME $LAB_KERNEL_ROOT
# description : creates OKD job yaml file that builds/updates spack environment and creates Lab kernel
# ===========================================================================================================
OC_JOB_ID=$1
BUILD_ENV_DOCKER_IMAGE=$2
-OP=$3
-INSTALLATION_ROOT=$4
-SPACK_VERSION=$5
-SPACK_ENV=$6
-BRANCH=$7
-RELEASE_NAME=$8
-LAB_KERNEL_ROOT=$9
+INSTALLATION_ROOT=$3
+SPACK_VERSION=$4
+EBRAINS_SPACK_ENV=$5
+BRANCH=$6
+RELEASE_NAME=$7
+LAB_KERNEL_ROOT=$8
cat <<EOT >> simplejob.yml
apiVersion: batch/v1
@@ -37,20 +36,54 @@ spec:
volumeMounts:
- name: sharedbin
mountPath: /srv
- command: ["/usr/local/bin/deploy-build-env.sh", "$OP", "$INSTALLATION_ROOT", "$SPACK_VERSION", "$SPACK_ENV", "$BRANCH", "$RELEASE_NAME", "$LAB_KERNEL_ROOT"]
+ command:
+ - /bin/bash
+ - -c
+ - |
+ # create root dir if it doesn't exist
+ mkdir -p \$INSTALLATION_ROOT
+
+ # reset build error log dir (delete previous logs to save space)
+ rm -rf \$BUILD_LOGS_DIR
+ mkdir -p \$BUILD_LOGS_DIR
+
+ # reset spack repository dir by cloning the selected version
+ rm -rf \$EBRAINS_REPO_PATH
+ git clone https://gitlab.ebrains.eu/technical-coordination/project-internal/devops/platform/ebrains-spack-builds.git --branch \$BRANCH \$EBRAINS_REPO_PATH
+
+ # run installation script
+ . \$EBRAINS_REPO_PATH/install_spack_env.sh \$INSTALLATION_ROOT \$SPACK_VERSION \$EBRAINS_REPO_PATH \$EBRAINS_SPACK_ENV
+
+ if [ \$? -eq 0 ]
+ then
+ # build process succeeded - create or update kernel on the NFS based on the current spack environment
+ chmod +x \$EBRAINS_REPO_PATH/create_JupyterLab_kernel.sh
+ \$EBRAINS_REPO_PATH/create_JupyterLab_kernel.sh \$INSTALLATION_ROOT \$EBRAINS_SPACK_ENV \$RELEASE_NAME \$LAB_KERNEL_ROOT
+ exit 0
+ else
+ # build process failed - keep spack build logs and fail the pipeline
+ cp -r /tmp/spack/spack-stage/* \$SPACK_BUILD_LOGS
+ exit
+ fi
env:
- name: SYSTEMNAME
value: ebrainslab
- - name: GITLAB_USER
- valueFrom:
- secretKeyRef:
- name: spack-repo-gitlab-token
- key: username
- - name: GITLAB_TOKEN
- valueFrom:
- secretKeyRef:
- name: spack-repo-gitlab-token
- key: password
+ - name: INSTALLATION_ROOT
+ value: $INSTALLATION_ROOT
+ - name: SPACK_VERSION
+ value: $SPACK_VERSION
+ - name: EBRAINS_SPACK_ENV
+ value: $EBRAINS_SPACK_ENV
+ - name: BRANCH
+ value: $BRANCH
+ - name: RELEASE_NAME
+ value: $RELEASE_NAME
+ - name: LAB_KERNEL_ROOT
+ value: $LAB_KERNEL_ROOT
+ - name: BUILD_LOGS_DIR
+ value: /srv/build_logs/$EBRAINS_SPACK_ENV
+ - name: EBRAINS_REPO_PATH
+ value: $INSTALLATION_ROOT/ebrains-spack-builds
volumes:
- name: sharedbin
persistentVolumeClaim: