Skip to content
Snippets Groups Projects
Commit c60c4f5a authored by Utz-Uwe Haus's avatar Utz-Uwe Haus
Browse files

Streamline JSC and gitlab.com CI

Enable test branch CI and disable MVP branch
Make docker image registry variable in CI scripts
Use CI_REGISTRY and do all docker-based CI steps on JSC too
parent 8f062490
No related branches found
No related tags found
No related merge requests found
Pipeline #79060 failed
...@@ -10,27 +10,41 @@ ...@@ -10,27 +10,41 @@
# CI-time variables, used for configure etc: # CI-time variables, used for configure etc:
variables: variables:
WITH_MERO: "no" WITH_MERO: "no"
GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_PROJECT_NAME/$CI_JOB_ID #GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_PROJECT_NAME/$CI_JOB_ID
LIBSEGFAULT_PATH: "/usr/lib64/libSegFault.so" LIBSEGFAULT_PATH: "/usr/lib64/libSegFault.so"
TIMEOUT: 20m TIMEOUT: 20m
BUILDENVNAME: "debian" BUILDENVNAME: "debian"
ASAN_OPTIONS: "detect_leaks=0" ASAN_OPTIONS: "detect_leaks=0"
REGISTRY_BASE: "${CI_REGISTRY}/cerl/maestro/maestro-core"
# stages in our CI flow # stages in our CI flow
stages: stages:
- update-buildenvs - update-buildenvs
- build-and-test - build-and-test
# template to special-case things for JSC gitlab
".build-specialization":
rules:
# disable CI except on some branches
- if: '$CI_COMMIT_BRANCH != "main" &&
$CI_COMMIT_BRANCH != "devel" &&
$CI_COMMIT_BRANCH != "77-update-ci"'
when: never
# set JSC-specific vars:
- if: '$GITLAB_INSTANCE == "JSC"'
variables:
REGISTRY_BASE: "${CI_REGISTRY}/maestro/maestro-core"
when: always
- when: always
# build template, common to all environments/gitlab sites # build template, common to all environments/gitlab sites
.build: ".build":
only:
refs:
- main
- devel
- mvp
- jsc-ci
stage: build-and-test stage: build-and-test
extends: ".build-specialization"
tags:
- docker
image: ${REGISTRY_BASE}/buildenv/${BUILDENVNAME}
script: script:
- export # print env - export # print env
- git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA" - git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA"
...@@ -71,7 +85,7 @@ pages: ...@@ -71,7 +85,7 @@ pages:
except: except:
variables: variables:
- $GITLAB_INSTANCE == "JSC" # this variable is set on JSC in the project config Web UI - $GITLAB_INSTANCE == "JSC" # this variable is set on JSC in the project config Web UI
image: registry.gitlab.com/cerl/maestro/maestro-core/buildenv/debian image: ${REGISTRY_BASE}/buildenv/debian
script: script:
- git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA" - git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA"
- autoreconf -ivf - autoreconf -ivf
...@@ -89,7 +103,7 @@ coverage: ...@@ -89,7 +103,7 @@ coverage:
except: except:
variables: variables:
- $GITLAB_INSTANCE == "JSC" # this variable is set on JSC in the project config Web UI - $GITLAB_INSTANCE == "JSC" # this variable is set on JSC in the project config Web UI
image: registry.gitlab.com/cerl/maestro/maestro-core/buildenv/debian image: ${REGISTRY_BASE}/buildenv/debian
script: script:
- git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA" - git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA"
- autoreconf -ivf - autoreconf -ivf
...@@ -123,47 +137,32 @@ coverage: ...@@ -123,47 +137,32 @@ coverage:
# build rule for debian docker image # build rule for debian docker image
build:debian: build:debian:
extends: .build extends: .build
except:
variables: variables:
- $GITLAB_INSTANCE == "JSC" # this variable is set on JSC in the project config Web UI BUILDENVNAME: "debian"
image: registry.gitlab.com/cerl/maestro/maestro-core/buildenv/debian
variables:
LIBSEGFAULT_PATH: "/lib/x86_64-linux-gnu/libSegFault.so"
build:ubuntu: build:ubuntu:
extends: .build extends: .build
except:
variables:
- $GITLAB_INSTANCE == "JSC" # this variable is set on JSC in the project config Web UI
image: registry.gitlab.com/cerl/maestro/maestro-core/buildenv/ubuntu
variables: variables:
LIBSEGFAULT_PATH: "/lib/x86_64-linux-gnu/libSegFault.so" BUILDENVNAME: "ubuntu"
build:centos: build:centos:
extends: .build extends: .build
except:
variables: variables:
- $GITLAB_INSTANCE == "JSC" # this variable is set on JSC in the project config Web UI BUILDENVNAME: "centos"
image: registry.gitlab.com/cerl/maestro/maestro-core/buildenv/centos
variables:
LIBSEGFAULT_PATH: "/lib64/libSegFault.so"
build:opensuse: build:opensuse:
extends: .build extends: .build
except:
variables:
- $GITLAB_INSTANCE == "JSC" # this variable is set on JSC in the project config Web UI
image: registry.gitlab.com/cerl/maestro/maestro-core/buildenv/opensuse
variables: variables:
LIBSEGFAULT_PATH: "/lib64/libSegFault.so" BUILDENVNAME: "opensuse"
### shell-runner builds, for SAGE prototype: ### shell-runner builds, for SAGE prototype:
# template: # template:
.build:sage: .build:sage:
extends: .build extends: .build
except: rules:
variables: - if: '$GITLAB_INSTANCE == "JSC"'
- $GITLAB_INSTANCE != "JSC" # this variable is set on JSC in the project config Web UI when: always
- when: never
tags: tags:
- Group - Group
- Maestro - Maestro
...@@ -181,24 +180,20 @@ build:sage:mio: ...@@ -181,24 +180,20 @@ build:sage:mio:
# without MIO # without MIO
build:sage:nomio: build:sage:nomio:
extends: .build:sage extends: .build:sage
except:
variables:
- $GITLAB_INSTANCE != "JSC" # this variable is set on JSC in the project config Web UI
variables: variables:
WITH_MERO: "no" WITH_MERO: "no"
### build environments ### build environments
.docker-buildenv-template: ".docker-buildenv-template":
stage: update-buildenvs stage: update-buildenvs
except: extends: .build-specialization
variables: # rules:
- $GITLAB_INSTANCE == "JSC" # this variable is set on JSC in the project config Web UI # - changes:
only: # - build-envs/Dockerfile.debian
refs: # when: always
- main # - when: never
- devel
variables: variables:
CI_DEBUG_TRACE: "true" CI_DEBUG_TRACE: "true"
# if we're running on docker (gitlab.com) # if we're running on docker (gitlab.com)
...@@ -210,11 +205,13 @@ build:sage:nomio: ...@@ -210,11 +205,13 @@ build:sage:nomio:
image: docker:latest image: docker:latest
services: services:
- docker:dind - docker:dind
variables: # variables:
DOCKER_HOST: tcp://docker:2375 # DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2 # DOCKER_DRIVER: overlay2
before_script: before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker info
- docker logout
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
# #
allow_failure: true allow_failure: true
retry: retry:
...@@ -227,49 +224,37 @@ build:sage:nomio: ...@@ -227,49 +224,37 @@ build:sage:nomio:
# above; otherwise we need assume the user has done the docker login with a # above; otherwise we need assume the user has done the docker login with a
# personal token with 'api' and 'read-registry' features # personal token with 'api' and 'read-registry' features
- docker build -f build-envs/Dockerfile.$BUILDENVNAME - docker build -f build-envs/Dockerfile.$BUILDENVNAME
--tag registry.gitlab.com/cerl/maestro/maestro-core/buildenv/$BUILDENVNAME:$CI_COMMIT_SHA --tag ${REGISTRY_BASE}/buildenv/${BUILDENVNAME}:${CI_COMMIT_SHA}
--tag registry.gitlab.com/cerl/maestro/maestro-core/buildenv/$BUILDENVNAME:latest --tag ${REGISTRY_BASE}/buildenv/${BUILDENVNAME}:latest
--pull --pull
--build-arg http_proxy=$http_proxy --build-arg http_proxy=$http_proxy
--build-arg https_proxy=$https_proxy --build-arg https_proxy=$https_proxy
--build-arg no_proxy=$no_proxy --build-arg no_proxy=$no_proxy
--build-arg VCS_REF=$CI_COMMIT_SHA --build-arg VCS_REF=$CI_COMMIT_SHA
--build-arg VCS_URL=$CI_PROJECT_URL . --build-arg VCS_URL=$CI_PROJECT_URL .
- docker push registry.gitlab.com/cerl/maestro/maestro-core/buildenv/$BUILDENVNAME:$CI_COMMIT_SHA - docker push ${REGISTRY_BASE}/buildenv/${BUILDENVNAME}:${CI_COMMIT_SHA}
- docker push registry.gitlab.com/cerl/maestro/maestro-core/buildenv/$BUILDENVNAME:latest - docker push ${REGISTRY_BASE}/buildenv/${BUILDENVNAME}:latest
# build debian image # build debian image
buildenv:debian: buildenv:debian:
extends: .docker-buildenv-template extends: ".docker-buildenv-template"
only:
changes:
- build-envs/Dockerfile.debian
variables: variables:
BUILDENVNAME: "debian" BUILDENVNAME: "debian"
# ubuntu image # ubuntu image
buildenv:ubuntu: buildenv:ubuntu:
extends: .docker-buildenv-template extends: .docker-buildenv-template
only:
changes:
- build-envs/Dockerfile.ubuntu
variables: variables:
BUILDENVNAME: "ubuntu" BUILDENVNAME: "ubuntu"
# centos image # centos image
buildenv:centos: buildenv:centos:
extends: .docker-buildenv-template extends: .docker-buildenv-template
only:
changes:
- build-envs/Dockerfile.centos
variables: variables:
BUILDENVNAME: "centos" BUILDENVNAME: "centos"
# opensuse image # opensuse image
buildenv:opensuse: buildenv:opensuse:
extends: .docker-buildenv-template extends: .docker-buildenv-template
only:
changes:
- build-envs/Dockerfile.opensuse
variables: variables:
BUILDENVNAME: "opensuse" BUILDENVNAME: "opensuse"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment