代码之家  ›  专栏  ›  技术社区  ›  mikelong

有没有办法从gitlab AutoDevOps中排除特定的分支?

  •  0
  • mikelong  · 技术社区  · 4 年前

    我试图排除一个特定的分支 production 然而,我无法从AutoDevOps中的gitlab管道中找出正确的语法。以下是我所拥有的:

    build:
      stage: build
      image: docker:19.03.1
      variables:
        DOCKER_TLS_CERTDIR: ""
      services:
        - docker:19.03.8-dind
      before_script:
        - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
      script:
        - |
          if [[ -z "$CI_COMMIT_TAG" ]]; then
            export CI_APPLICATION_REPOSITORY=${CI_APPLICATION_REPOSITORY:-$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG}
            export CI_APPLICATION_TAG=${CI_APPLICATION_TAG:-$CI_COMMIT_SHA}
          else
            export CI_APPLICATION_REPOSITORY=${CI_APPLICATION_REPOSITORY:-$CI_REGISTRY_IMAGE}
            export CI_APPLICATION_TAG=${CI_APPLICATION_TAG:-$CI_COMMIT_TAG}
          fi
        # make and git needed to run makefiles
        - apk add --update make
        - apk add --update git
        - make ci-build
        - make ensure_project publish_artifact
      rules:
        # don't build on production - that is just a marker branch in git
        - if: '$CI_COMMIT_BRANCH != "production"'
        - if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH'
    

    然而,管道仍在运行 生产 我做错了什么?

    0 回复  |  直到 4 年前
        1
  •  3
  •   Rameshwar    4 年前

    你能试着用规则代替规则吗

    except:
      - production
    

    Gitlab CI/CD Pipeline Configuration

        2
  •  0
  •   Climber123    3 年前

    我用这个解决了这个任务

        rules:
            - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^dev$/'