Commit b2c62ab8 authored by Nikos Psaromanolakis's avatar Nikos Psaromanolakis
Browse files

fix: New method to built dev-latest and validate job

parent 72c54392
Loading
Loading
Loading
Loading
Loading
+32 −6
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ stages:
  - dev_deploy
  - dev_workflows
  - develop_image_tag
  - validate_main_source
  - prod_extract_next_release
  - prod_package
  - prod_release
@@ -154,10 +155,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:
@@ -242,21 +252,37 @@ 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