GitLab CI/CD Pipeline中deploy阶段未执行,如何自动触发该阶段?
GitLab CI Deploy阶段未执行的解决方法
问题原因
你的deploy:openjdk17任务配置了only: master规则,这意味着只有当流水线运行在master分支时,这个任务才会被触发。如果当前触发流水线的分支不是master,GitLab CI会直接忽略这个任务,自然不会在日志里显示deploy阶段。
解决方案
根据你的需求选择以下一种方式修改gitlab-ci.yml:
1. 让所有分支都执行deploy阶段
直接删除only: master配置:
deploy:openjdk17: stage: deploy script: - 'mvn $MAVEN_CLI_OPTS clean javafx:jlink com.coderplus.maven.plugins:copy-rename-maven-plugin:1.0:copy'
2. 指定多个分支执行deploy阶段
如果需要在master和其他分支(比如develop)执行,修改only为数组:
deploy:openjdk17: stage: deploy script: - 'mvn $MAVEN_CLI_OPTS clean javafx:jlink com.coderplus.maven.plugins:copy-rename-maven-plugin:1.0:copy' only: - master - develop
3. 使用更灵活的rules替代only(推荐)
GitLab CI推荐使用rules来控制任务执行,比如只在master分支自动执行,同时允许手动触发其他分支的deploy:
deploy:openjdk17: stage: deploy script: - 'mvn $MAVEN_CLI_OPTS clean javafx:jlink com.coderplus.maven.plugins:copy-rename-maven-plugin:1.0:copy' rules: - if: $CI_COMMIT_BRANCH == "master" when: always - if: $CI_PIPELINE_SOURCE == "web" when: manual
验证方法
修改配置后提交到对应分支,触发流水线,查看是否出现deploy阶段的任务日志。
内容的提问来源于stack exchange,提问作者Leder
相关产品推荐
相关产品推荐

