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 @@
# CI-time variables, used for configure etc:
variables:
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"
TIMEOUT: 20m
BUILDENVNAME: "debian"
ASAN_OPTIONS: "detect_leaks=0"
REGISTRY_BASE: "${CI_REGISTRY}/cerl/maestro/maestro-core"
# stages in our CI flow
stages:
- update-buildenvs
- 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:
only:
refs:
- main
- devel
- mvp
- jsc-ci
".build":
stage: build-and-test
extends: ".build-specialization"
tags:
- docker
image: ${REGISTRY_BASE}/buildenv/${BUILDENVNAME}
script:
- export # print env
- git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA"
......@@ -71,7 +85,7 @@ pages:
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/debian
image: ${REGISTRY_BASE}/buildenv/debian
script:
- git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA"
- autoreconf -ivf
......@@ -89,7 +103,7 @@ coverage:
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/debian
image: ${REGISTRY_BASE}/buildenv/debian
script:
- git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA"
- autoreconf -ivf
......@@ -123,47 +137,32 @@ coverage:
# build rule for debian docker image
build:debian:
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/debian
variables:
LIBSEGFAULT_PATH: "/lib/x86_64-linux-gnu/libSegFault.so"
BUILDENVNAME: "debian"
build:ubuntu:
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:
LIBSEGFAULT_PATH: "/lib/x86_64-linux-gnu/libSegFault.so"
BUILDENVNAME: "ubuntu"
build:centos:
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/centos
variables:
LIBSEGFAULT_PATH: "/lib64/libSegFault.so"
BUILDENVNAME: "centos"
build:opensuse:
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:
LIBSEGFAULT_PATH: "/lib64/libSegFault.so"
BUILDENVNAME: "opensuse"
### shell-runner builds, for SAGE prototype:
# template:
.build:sage:
extends: .build
except:
variables:
- $GITLAB_INSTANCE != "JSC" # this variable is set on JSC in the project config Web UI
rules:
- if: '$GITLAB_INSTANCE == "JSC"'
when: always
- when: never
tags:
- Group
- Maestro
......@@ -181,24 +180,20 @@ build:sage:mio:
# without MIO
build:sage:nomio:
extends: .build:sage
except:
variables:
- $GITLAB_INSTANCE != "JSC" # this variable is set on JSC in the project config Web UI
variables:
WITH_MERO: "no"
### build environments
.docker-buildenv-template:
".docker-buildenv-template":
stage: update-buildenvs
except:
variables:
- $GITLAB_INSTANCE == "JSC" # this variable is set on JSC in the project config Web UI
only:
refs:
- main
- devel
extends: .build-specialization
# rules:
# - changes:
# - build-envs/Dockerfile.debian
# when: always
# - when: never
variables:
CI_DEBUG_TRACE: "true"
# if we're running on docker (gitlab.com)
......@@ -210,11 +205,13 @@ build:sage:nomio:
image: docker:latest
services:
- docker:dind
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
# variables:
# DOCKER_HOST: tcp://docker:2375
# DOCKER_DRIVER: overlay2
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
retry:
......@@ -227,49 +224,37 @@ build:sage:nomio:
# above; otherwise we need assume the user has done the docker login with a
# personal token with 'api' and 'read-registry' features
- docker build -f build-envs/Dockerfile.$BUILDENVNAME
--tag registry.gitlab.com/cerl/maestro/maestro-core/buildenv/$BUILDENVNAME:$CI_COMMIT_SHA
--tag registry.gitlab.com/cerl/maestro/maestro-core/buildenv/$BUILDENVNAME:latest
--tag ${REGISTRY_BASE}/buildenv/${BUILDENVNAME}:${CI_COMMIT_SHA}
--tag ${REGISTRY_BASE}/buildenv/${BUILDENVNAME}:latest
--pull
--build-arg http_proxy=$http_proxy
--build-arg https_proxy=$https_proxy
--build-arg no_proxy=$no_proxy
--build-arg VCS_REF=$CI_COMMIT_SHA
--build-arg VCS_URL=$CI_PROJECT_URL .
- docker push registry.gitlab.com/cerl/maestro/maestro-core/buildenv/$BUILDENVNAME:$CI_COMMIT_SHA
- docker push registry.gitlab.com/cerl/maestro/maestro-core/buildenv/$BUILDENVNAME:latest
- docker push ${REGISTRY_BASE}/buildenv/${BUILDENVNAME}:${CI_COMMIT_SHA}
- docker push ${REGISTRY_BASE}/buildenv/${BUILDENVNAME}:latest
# build debian image
buildenv:debian:
extends: .docker-buildenv-template
only:
changes:
- build-envs/Dockerfile.debian
extends: ".docker-buildenv-template"
variables:
BUILDENVNAME: "debian"
# ubuntu image
buildenv:ubuntu:
extends: .docker-buildenv-template
only:
changes:
- build-envs/Dockerfile.ubuntu
variables:
BUILDENVNAME: "ubuntu"
# centos image
buildenv:centos:
extends: .docker-buildenv-template
only:
changes:
- build-envs/Dockerfile.centos
variables:
BUILDENVNAME: "centos"
# opensuse image
buildenv:opensuse:
extends: .docker-buildenv-template
only:
changes:
- build-envs/Dockerfile.opensuse
variables:
BUILDENVNAME: "opensuse"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment