在gitlab管道上运行gradle发布会触发另外3个构建作业



这是我的gitlab管道:

image: docker:latest
services:
- docker:dind
variables:
DOCKER_DRIVER: overlay
SPRING_PROFILES_ACTIVE: gitlab-ci
before_script:
- git remote set-url origin https://gitlab-ci-token:$CICD_GIT_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git
- git config --global user.email 'me@email.com'
- git config --global user.name 'Gitlab (Me)'
- git checkout -b $CI_COMMIT_BRANCH
stages:
- build
- package
- deploy
gradle-build:
image: gradle:alpine
stage: build
script:
- PROJECT_VERSION=`./gradlew -quiet printVersion`
- ./gradlew release
artifacts:
paths:
- build/libs/*.jar
docker-build:
stage: package
script:
- docker build -t registry.gitlab.com/me/myproject:$PROJECT_VERSION .
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
- docker push registry.gitlab.com/me/myproject:PROJECT_VERSION

不确定为什么3个构建会被触发(可能是因为插件进行了提交(,也不确定如何修复。

如有任何帮助,我们将不胜感激。

谢谢。

看了这里之后:https://docs.gitlab.com/ee/ci/yaml/

我在管道中添加了以下部分:

workflow:
rules:
- if: $CI_COMMIT_AUTHOR =~ /^Gitlab Pipeline/
when: never
- when: always

把东西移到";before_script"在脚本下,并更改了git用户名:

script:
- git remote set-url origin https://gitlab-ci-token:$CICD_GIT_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git
- git config --global user.email 'me@email.com'
- git config --global user.name 'Gitlab Pipeline'
- git checkout -b $CI_COMMIT_BRANCH
- ./gradlew release

现在,名称为";Gitlab管道";不再触发生成。

触发额外的构建是因为发布插件还进行了标记前提交,然后在最后进行新版本提交。这将触发2个构建,而每个构建又会触发2个,依此类推

现在,管道的行为与预期一致。

最新更新