0

I have a problem where the application code is developed and built in vendor premises and only code binary is sent in the form of docker image and uploaded to Nexus repository. Now, I need to create a deployment pipeline in GitLab which will be triggered as soon as a new image is uploaded to nexus.

Please suggest any solution.

I have tried to create a parent child pipeline where I am trying to check the HTTP resonse status from Nexus through curl request, trigger the child pipeline only when the status is 200. The parent pipeline can be configured as a scheduled pipeline which will check the image availability on a regular interval.

Parent yml:

stages:
  - build
  - trigger_child

build:
  stage: build
  script:
    - echo "img_status=`curl -s -o /dev/null -w "%{http_code}" https://www.google.com`" >> build.env
  artifacts:
    reports:
      dotenv: build.env

trigger_child:
  stage: trigger_child
  trigger:
    include: 
      - local: App/.gitlab-ci.yml
    strategy: depend
  needs:
    - job: build
      artifacts: true
  rules:
    - if: $img_status == "200"
      when: always

Child yml:

stages:
  - deploy

deploy:
  stage: deploy
  script:
    - echo "This job deploys something new"

0 Answers0