diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a356989a..05b8f29e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,32 +1,17 @@ -# This file is a template, and might need editing before it works on your project. -# To contribute improvements to CI/CD templates, please follow the Development guide at: -# https://docs.gitlab.com/ee/development/cicd/templates.html -# This specific template is located at: -# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Docker.gitlab-ci.yml - -# Build a Docker image with CI/CD and push to the GitLab registry. -# Docker-in-Docker documentation: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html -# -# This template uses one generic job with conditional builds -# for the default branch and all other (MR) branches. - docker-latest-build: - # Use the official docker image. image: docker:latest stage: build variables: ARCH_TYPE: "" - INCLUDE_DB: "true" + EXCLUDE_DB: "false" DOCKER_FILE: "Dockerfile" services: - docker:dind before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - # Default branch leaves tag empty (= latest tag) - # All other branches are tagged with the escaped branch name (commit ref slug) script: - | - export BRANCH_PREFIX="" ; + export BRANCH_PREFIX="latest" ; export NO_DB_SUFIX="" ; export BRANCH_SEP="" ; @@ -34,7 +19,7 @@ docker-latest-build: export BRANCH_PREFIX="${CI_COMMIT_REF_SLUG}" ; fi - if [[ "${INCLUDE_DB}" == "false" ]]; then + if [[ "${EXCLUDE_DB}" == "true" ]]; then export NO_DB_SUFIX="-no-db" ; fi @@ -45,33 +30,29 @@ docker-latest-build: export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${BRANCH_SEP}${ARCH_TYPE}${NO_DB_SUFIX}" ; echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ; - - docker build --pull --build-arg VAR_EXCLUDE_DB="${INCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" + - docker build --pull --build-arg VAR_EXCLUDE_DB="${EXCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" - docker push "${IMAGE_NAME}" - # Run this job in a branch where a Dockerfile exists rules: - # - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" - # when: never + - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" + when: never - if: $CI_COMMIT_BRANCH exists: - $DOCKER_FILE docker-latest-no-db-build: - # Use the official docker image. image: docker:latest stage: build variables: ARCH_TYPE: "" - INCLUDE_DB: "false" + EXCLUDE_DB: "true" DOCKER_FILE: "Dockerfile" services: - docker:dind before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - # Default branch leaves tag empty (= latest tag) - # All other branches are tagged with the escaped branch name (commit ref slug) script: - | - export BRANCH_PREFIX="" ; + export BRANCH_PREFIX="latest" ; export NO_DB_SUFIX="" ; export BRANCH_SEP="" ; @@ -79,7 +60,7 @@ docker-latest-no-db-build: export BRANCH_PREFIX="${CI_COMMIT_REF_SLUG}" ; fi - if [[ "${INCLUDE_DB}" == "false" ]]; then + if [[ "${EXCLUDE_DB}" == "true" ]]; then export NO_DB_SUFIX="-no-db" ; fi @@ -90,33 +71,29 @@ docker-latest-no-db-build: export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${BRANCH_SEP}${ARCH_TYPE}${NO_DB_SUFIX}" ; echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ; - - docker build --pull --build-arg VAR_EXCLUDE_DB="${INCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" + - docker build --pull --build-arg VAR_EXCLUDE_DB="${EXCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" - docker push "${IMAGE_NAME}" - # Run this job in a branch where a Dockerfile exists rules: - # - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" - # when: never + - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" + when: never - if: $CI_COMMIT_BRANCH exists: - $DOCKER_FILE docker-arm32v7-build: - # Use the official docker image. image: docker:latest stage: build variables: ARCH_TYPE: "arm32v7" - INCLUDE_DB: "true" + EXCLUDE_DB: "false" DOCKER_FILE: "Dockerfile.arm32v7" services: - docker:dind before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - # Default branch leaves tag empty (= latest tag) - # All other branches are tagged with the escaped branch name (commit ref slug) script: - | - export BRANCH_PREFIX="" ; + export BRANCH_PREFIX="latest" ; export NO_DB_SUFIX="" ; export BRANCH_SEP="" ; @@ -124,7 +101,7 @@ docker-arm32v7-build: export BRANCH_PREFIX="${CI_COMMIT_REF_SLUG}" ; fi - if [[ "${INCLUDE_DB}" == "false" ]]; then + if [[ "${EXCLUDE_DB}" == "true" ]]; then export NO_DB_SUFIX="-no-db" ; fi @@ -135,33 +112,29 @@ docker-arm32v7-build: export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${BRANCH_SEP}${ARCH_TYPE}${NO_DB_SUFIX}" ; echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ; - - docker build --pull --build-arg VAR_EXCLUDE_DB="${INCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" + - docker build --pull --build-arg VAR_EXCLUDE_DB="${EXCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" - docker push "${IMAGE_NAME}" - # Run this job in a branch where a Dockerfile exists rules: - # - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" - # when: never + - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" + when: never - if: $CI_COMMIT_BRANCH exists: - $DOCKER_FILE docker-arm32v7-no-db-build: - # Use the official docker image. image: docker:latest stage: build variables: ARCH_TYPE: "arm32v7" - INCLUDE_DB: "false" + EXCLUDE_DB: "true" DOCKER_FILE: "Dockerfile.arm32v7" services: - docker:dind before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - # Default branch leaves tag empty (= latest tag) - # All other branches are tagged with the escaped branch name (commit ref slug) script: - | - export BRANCH_PREFIX="" ; + export BRANCH_PREFIX="latest" ; export NO_DB_SUFIX="" ; export BRANCH_SEP="" ; @@ -169,7 +142,7 @@ docker-arm32v7-no-db-build: export BRANCH_PREFIX="${CI_COMMIT_REF_SLUG}" ; fi - if [[ "${INCLUDE_DB}" == "false" ]]; then + if [[ "${EXCLUDE_DB}" == "true" ]]; then export NO_DB_SUFIX="-no-db" ; fi @@ -180,33 +153,29 @@ docker-arm32v7-no-db-build: export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${BRANCH_SEP}${ARCH_TYPE}${NO_DB_SUFIX}" ; echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ; - - docker build --pull --build-arg VAR_EXCLUDE_DB="${INCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" + - docker build --pull --build-arg VAR_EXCLUDE_DB="${EXCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" - docker push "${IMAGE_NAME}" - # Run this job in a branch where a Dockerfile exists rules: - # - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" - # when: never + - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" + when: never - if: $CI_COMMIT_BRANCH exists: - $DOCKER_FILE docker-arm64v8-build: - # Use the official docker image. image: docker:latest stage: build variables: ARCH_TYPE: "arm64v8" - INCLUDE_DB: "true" + EXCLUDE_DB: "false" DOCKER_FILE: "Dockerfile.arm64v8" services: - docker:dind before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - # Default branch leaves tag empty (= latest tag) - # All other branches are tagged with the escaped branch name (commit ref slug) script: - | - export BRANCH_PREFIX="" ; + export BRANCH_PREFIX="latest" ; export NO_DB_SUFIX="" ; export BRANCH_SEP="" ; @@ -214,7 +183,7 @@ docker-arm64v8-build: export BRANCH_PREFIX="${CI_COMMIT_REF_SLUG}" ; fi - if [[ "${INCLUDE_DB}" == "false" ]]; then + if [[ "${EXCLUDE_DB}" == "true" ]]; then export NO_DB_SUFIX="-no-db" ; fi @@ -225,33 +194,29 @@ docker-arm64v8-build: export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${BRANCH_SEP}${ARCH_TYPE}${NO_DB_SUFIX}" ; echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ; - - docker build --pull --build-arg VAR_EXCLUDE_DB="${INCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" + - docker build --pull --build-arg VAR_EXCLUDE_DB="${EXCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" - docker push "${IMAGE_NAME}" - # Run this job in a branch where a Dockerfile exists rules: - # - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" - # when: never + - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" + when: never - if: $CI_COMMIT_BRANCH exists: - $DOCKER_FILE docker-arm64v8-no-db-build: - # Use the official docker image. image: docker:latest stage: build variables: ARCH_TYPE: "arm64v8" - INCLUDE_DB: "false" + EXCLUDE_DB: "true" DOCKER_FILE: "Dockerfile.arm64v8" services: - docker:dind before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - # Default branch leaves tag empty (= latest tag) - # All other branches are tagged with the escaped branch name (commit ref slug) script: - | - export BRANCH_PREFIX="" ; + export BRANCH_PREFIX="latest" ; export NO_DB_SUFIX="" ; export BRANCH_SEP="" ; @@ -259,7 +224,7 @@ docker-arm64v8-no-db-build: export BRANCH_PREFIX="${CI_COMMIT_REF_SLUG}" ; fi - if [[ "${INCLUDE_DB}" == "false" ]]; then + if [[ "${EXCLUDE_DB}" == "true" ]]; then export NO_DB_SUFIX="-no-db" ; fi @@ -270,34 +235,29 @@ docker-arm64v8-no-db-build: export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${BRANCH_SEP}${ARCH_TYPE}${NO_DB_SUFIX}" ; echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ; - - docker build --pull --build-arg VAR_EXCLUDE_DB="${INCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" + - docker build --pull --build-arg VAR_EXCLUDE_DB="${EXCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" - docker push "${IMAGE_NAME}" - # Run this job in a branch where a Dockerfile exists rules: - # - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" - # when: never + - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" + when: never - if: $CI_COMMIT_BRANCH exists: - $DOCKER_FILE - docker-nvidia-build: - # Use the official docker image. image: docker:latest stage: build variables: ARCH_TYPE: "nvidia" - INCLUDE_DB: "true" + EXCLUDE_DB: "false" DOCKER_FILE: "Dockerfile.nvidia" services: - docker:dind before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - # Default branch leaves tag empty (= latest tag) - # All other branches are tagged with the escaped branch name (commit ref slug) script: - | - export BRANCH_PREFIX="" ; + export BRANCH_PREFIX="latest" ; export NO_DB_SUFIX="" ; export BRANCH_SEP="" ; @@ -305,7 +265,7 @@ docker-nvidia-build: export BRANCH_PREFIX="${CI_COMMIT_REF_SLUG}" ; fi - if [[ "${INCLUDE_DB}" == "false" ]]; then + if [[ "${EXCLUDE_DB}" == "true" ]]; then export NO_DB_SUFIX="-no-db" ; fi @@ -316,33 +276,29 @@ docker-nvidia-build: export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${BRANCH_SEP}${ARCH_TYPE}${NO_DB_SUFIX}" ; echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ; - - docker build --pull --build-arg VAR_EXCLUDE_DB="${INCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" + - docker build --pull --build-arg VAR_EXCLUDE_DB="${EXCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" - docker push "${IMAGE_NAME}" - # Run this job in a branch where a Dockerfile exists rules: - # - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" - # when: never + - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" + when: never - if: $CI_COMMIT_BRANCH exists: - $DOCKER_FILE docker-nvidia-no-db-build: - # Use the official docker image. image: docker:latest stage: build variables: ARCH_TYPE: "nvidia" - INCLUDE_DB: "false" + EXCLUDE_DB: "true" DOCKER_FILE: "Dockerfile.nvidia" services: - docker:dind before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - # Default branch leaves tag empty (= latest tag) - # All other branches are tagged with the escaped branch name (commit ref slug) script: - | - export BRANCH_PREFIX="" ; + export BRANCH_PREFIX="latest" ; export NO_DB_SUFIX="" ; export BRANCH_SEP="" ; @@ -350,7 +306,7 @@ docker-nvidia-no-db-build: export BRANCH_PREFIX="${CI_COMMIT_REF_SLUG}" ; fi - if [[ "${INCLUDE_DB}" == "false" ]]; then + if [[ "${EXCLUDE_DB}" == "true" ]]; then export NO_DB_SUFIX="-no-db" ; fi @@ -361,12 +317,11 @@ docker-nvidia-no-db-build: export IMAGE_NAME="$CI_REGISTRY_IMAGE:${BRANCH_PREFIX}${BRANCH_SEP}${ARCH_TYPE}${NO_DB_SUFIX}" ; echo "Running on branch '${CI_COMMIT_BRANCH}', Image: ${IMAGE_NAME}" ; - - docker build --pull --build-arg VAR_EXCLUDE_DB="${INCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" + - docker build --pull --build-arg VAR_EXCLUDE_DB="${EXCLUDE_DB}" -t "${IMAGE_NAME}" . -f "${DOCKER_FILE}" - docker push "${IMAGE_NAME}" - # Run this job in a branch where a Dockerfile exists rules: - # - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" - # when: never + - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "main" && $CI_COMMIT_BRANCH != "dev" + when: never - if: $CI_COMMIT_BRANCH exists: - $DOCKER_FILE