workflow: rules: - if: $CI_PIPELINE_SOURCE == "web" - when: never stages: - build - deploy docker-build: image: docker:cli stage: build services: - docker:dind variables: DOCKER_IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - docker build --pull -t "$DOCKER_IMAGE_NAME" . - docker push "$DOCKER_IMAGE_NAME" rules: - exists: - Dockerfile deploy: image: curlimages/curl:8.10.1 stage: deploy needs: ["docker-build"] script: - 'test -n "$WEBHOOK_URL"' - curl -fsSL -X POST "$WEBHOOK_URL" rules: - if: $WEBHOOK_URL