【问题标题】:gitlab-ci, how to prevent another trigger when pushing from a runnergitlab-ci,从跑步者推动时如何防止另一个触发器
【发布时间】:2019-02-20 03:34:40
【问题描述】:

这是管道的工作原理

  • 当推送 master 时(按预期工作):构建项目 && 推送 jar 到 dev
  • 创建标签时(无法按预期工作):

    1. 构建项目
    2. 增加 pom.xml 版本并将 pom.xml 推送到
    3. 将 jar 推送到服务器

但是当我执行第 2 步时,它会重新触发 CI 中的另一个构建。

在这种情况下如何推送和避免触发作业?

这是完整的 gitlab-ci.yml:

image: maven:3.6.0-jdk-10

variables:
  APP_NAME: demo
  MAVEN_OPTS: -Dmaven.repo.local=/cache/maven.repository

stages:
- build
- deploy_dev
- deploy_prod

build:
  stage: build
  script:
  - mvn package -P build
  - mv target/*.jar target/$APP_NAME.jar
  artifacts:
    untracked: true

deploy_dev:
  before_script:
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$SSH_PRIVATE_KEY")
  - '[[ -f /.dockerenv ]] && mkdir -p ~/.ssh && echo "$KNOWN_HOST" > ~/.ssh/known_hosts'
  - mkdir -p ~/.ssh
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
  stage: deploy_dev
  environment:
    name: dev
    url: http://devsb01:9999
  dependencies:
  - build
  only:
  - master
  except:
  - tags
  script:
  - ssh root@devsb01 "service $APP_NAME stop"
  - scp target/$APP_NAME.jar root@devsb01:/var/apps/$APP_NAME/
  - ssh root@devsb01 "service $APP_NAME start"

deploy_prod:
  before_script:
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$SSH_PRIVATE_KEY")
  - '[[ -f /.dockerenv ]] && mkdir -p ~/.ssh && echo "$KNOWN_HOST" > ~/.ssh/known_hosts'
  - mkdir -p ~/.ssh
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
  stage: deploy_prod
  environment:
    name: production
  dependencies:
  - build
  only:
  - tags
  except:
  - branches
  script:
    - mvn versions:set -DnewVersion=$CI_COMMIT_REF_NAME
    - git config --global user.name "gitlab-ci"
    - git config --global user.email "gitlab-ci@unc.nc"
    - git --version
    - git status
    - git add pom.xml
    - git commit -m "increment pom version"
    - git push http://gitlab-ci:${GITLABCI_PWD}@gitlab.unc.nc/dsi-infogestion/demo.git HEAD:master
    - git status
    - ssh root@prodsb01 "service $APP_NAME stop"
    - scp target/$APP_NAME.jar root@prodsb01:/var/apps/$APP_NAME/
    - ssh root@prodsb01 "service $APP_NAME start"

【问题讨论】:

    标签: gitlab-ci gitlab-ci-runner


    【解决方案1】:

    我在提交消息中有字符串“[ci skip]”,它可以工作:

    • git commit -m "increment pom version [ci skip]"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 2021-08-10
      • 2021-07-07
      • 1970-01-01
      • 2020-04-24
      相关资源
      最近更新 更多