Loading .gitlab-ci.yml +32 −7 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ stages: - dev_deploy - dev_workflows - develop_image_tag - validate_main_source - prod_extract_next_release - prod_package - prod_release Loading Loading @@ -155,10 +156,19 @@ dev_image_build_job: BUILT_IMAGE: "$CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA" before_script: - docker info > /dev/null - apk add --no-cache curl script: - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY - docker build --network host --pull -t $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA -f src/main/docker/Dockerfile.jvm . - docker push $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA # Store the exact built image for the next develop pipeline - | curl --fail --request PUT \ --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" \ --form "value=$BUILT_IMAGE" \ "$CI_API_V4_URL/projects/$CI_PROJECT_ID/variables/LAST_MR_BUILT_IMAGE" after_script: - docker image rm -f "$BUILT_IMAGE" || true dependencies: Loading @@ -168,7 +178,6 @@ dev_image_build_job: dev_deploy_job: stage: dev_deploy tags: Loading Loading @@ -246,22 +255,38 @@ develop_image_tag_job: image: name: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/docker:29.1.3 variables: SOURCE_IMAGE: "$CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA" DEVELOP_IMAGE: "$CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:dev-latest" before_script: - docker info > /dev/null script: - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY - echo "Promoting image for develop commit $CI_COMMIT_SHA" - docker pull $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA - docker tag $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:dev-latest - docker push $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:dev-latest - echo "Promoting image for develop commit $LAST_MR_BUILT_IMAGE" - docker pull "$LAST_MR_BUILT_IMAGE" - docker tag "$LAST_MR_BUILT_IMAGE" "$DEVELOP_IMAGE" - docker push "$DEVELOP_IMAGE" after_script: - docker image rm -f "$SOURCE_IMAGE" "$DEVELOP_IMAGE" || true - docker image rm -f "$LAST_MR_BUILT_IMAGE" "$DEVELOP_IMAGE" || true only: - develop validate_main_source_job: stage: validate_main_source tags: - hypo script: - | if [ "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" != "develop" ]; then echo "ERROR: Only develop can be merged into main." exit 1 fi echo "Valid merge: develop -> main" rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"' - when: never prod_extract_next_release_job: image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/node:lts stage: prod_extract_next_release Loading Loading
.gitlab-ci.yml +32 −7 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ stages: - dev_deploy - dev_workflows - develop_image_tag - validate_main_source - prod_extract_next_release - prod_package - prod_release Loading Loading @@ -155,10 +156,19 @@ dev_image_build_job: BUILT_IMAGE: "$CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA" before_script: - docker info > /dev/null - apk add --no-cache curl script: - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY - docker build --network host --pull -t $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA -f src/main/docker/Dockerfile.jvm . - docker push $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA # Store the exact built image for the next develop pipeline - | curl --fail --request PUT \ --header "PRIVATE-TOKEN: $GROUP_ACCESS_TOKEN" \ --form "value=$BUILT_IMAGE" \ "$CI_API_V4_URL/projects/$CI_PROJECT_ID/variables/LAST_MR_BUILT_IMAGE" after_script: - docker image rm -f "$BUILT_IMAGE" || true dependencies: Loading @@ -168,7 +178,6 @@ dev_image_build_job: dev_deploy_job: stage: dev_deploy tags: Loading Loading @@ -246,22 +255,38 @@ develop_image_tag_job: image: name: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/docker:29.1.3 variables: SOURCE_IMAGE: "$CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA" DEVELOP_IMAGE: "$CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:dev-latest" before_script: - docker info > /dev/null script: - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY - echo "Promoting image for develop commit $CI_COMMIT_SHA" - docker pull $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA - docker tag $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:$CI_COMMIT_SHORT_SHA $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:dev-latest - docker push $CI_REGISTRY/$CI_PROJECT_PATH/$IMAGE_NAME:dev-latest - echo "Promoting image for develop commit $LAST_MR_BUILT_IMAGE" - docker pull "$LAST_MR_BUILT_IMAGE" - docker tag "$LAST_MR_BUILT_IMAGE" "$DEVELOP_IMAGE" - docker push "$DEVELOP_IMAGE" after_script: - docker image rm -f "$SOURCE_IMAGE" "$DEVELOP_IMAGE" || true - docker image rm -f "$LAST_MR_BUILT_IMAGE" "$DEVELOP_IMAGE" || true only: - develop validate_main_source_job: stage: validate_main_source tags: - hypo script: - | if [ "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" != "develop" ]; then echo "ERROR: Only develop can be merged into main." exit 1 fi echo "Valid merge: develop -> main" rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"' - when: never prod_extract_next_release_job: image: labs.etsi.org:5050/osl/hypo/code/org.etsi.osl.hypo.ops/cicd/integration.tests/node:lts stage: prod_extract_next_release Loading