From 563ffc66594975f7393a46b2ea8fb3d0eb2a0d2d Mon Sep 17 00:00:00 2001 From: Dimitrios Giannopoulos Date: Mon, 18 Dec 2023 16:06:53 +0000 Subject: [PATCH] Decompose .gitlab-ci.yml into modular templates --- .gitlab-ci.yml | 54 ++++++++++-------------------------------- ci-templates/build.yml | 21 ++++++++++++++++ 2 files changed, 33 insertions(+), 42 deletions(-) create mode 100644 ci-templates/build.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index eea9911..ad0165c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,46 +1,16 @@ -# stages: -# - java_build -# - docker_build - -.default_rules: &default_rules +.default: + variables: + DEFAULT_TAG: "1.2.0-SNAPSHOT" + before_script: + - | + if [ "$CI_COMMIT_REF_NAME" = "main" ] && [ -n "$CI_COMMIT_TAG" ]; then + export APP_VERSION=$CI_COMMIT_TAG + elif [ "$CI_COMMIT_REF_NAME" = "develop" ]; then + export APP_VERSION="develop" + else + export APP_VERSION=$DEFAULT_TAG + fi rules: - if: $CI_COMMIT_REF_NAME == "main" - if: $CI_COMMIT_REF_NAME == "develop" - if: $CI_COMMIT_REF_NAME == "12-create-a-pipeline-to-build-and-publish-the-docker-image-in-gitlab-registry" - -variables: - DEFAULT_TAG: "1.2.0-SNAPSHOT" - -before_script: - - | - if [ "$CI_COMMIT_REF_NAME" = "main" ] && [ -n "$CI_COMMIT_TAG" ]; then - export APP_VERSION=$CI_COMMIT_TAG - elif [ "$CI_COMMIT_REF_NAME" = "develop" ]; then - export APP_VERSION="develop" - else - export APP_VERSION=$DEFAULT_TAG - fi - -java_build: - # stage: java_build - image: maven:3.9.5-ibm-semeru-17-focal - script: - - mvn deploy -s ci_settings.xml -DskipTests -Dversion=$APP_VERSION - artifacts: - paths: - - target/ - <<: *default_rules - -# .docker_build: -# stage: docker_build -# image: -# name: gcr.io/kaniko-project/executor:debug -# entrypoint: [""] -# script: -# - /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:$APP_VERSION" -# - | -# if [ "$CI_COMMIT_REF_NAME" = "main" ]; then -# echo "Pushing Docker image with tag 'latest'" -# /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:latest" -# fi -# <<: *default_rules diff --git a/ci-templates/build.yml b/ci-templates/build.yml new file mode 100644 index 0000000..3873ce9 --- /dev/null +++ b/ci-templates/build.yml @@ -0,0 +1,21 @@ +.maven_build: + extends: .default + image: maven:3.9.5-ibm-semeru-17-focal + script: + - mvn deploy -s ci_settings.xml -DskipTests -Dversion=$APP_VERSION + artifacts: + paths: + - target/ + +.docker_build: + extends: .default + image: + name: gcr.io/kaniko-project/executor:debug + entrypoint: [""] + script: + - /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:$APP_VERSION" + - | + if [ "$CI_COMMIT_REF_NAME" = "main" ]; then + echo "Pushing Docker image with tag 'latest'" + /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:latest" + fi -- GitLab