【问题标题】:How can I ensure, to have different workflows for Travis CI for different git branches我如何确保为不同的 git 分支为 Travis CI 提供不同的工作流程
【发布时间】:2019-07-06 09:42:38
【问题描述】:

我正在设置 CI 管道。

我有一个构建 docker 镜像的脚本。

在 travis.yml 中是这样的。

script
  - bash builddocker.sh

我希望能够使用相同的脚本并以这样的方式运行,它为不同的分支构建图像并推送到不同的存储库。

比如master,push到dev-docker-repository 对于功能分支,将其推送到 `team-test-repository'

【问题讨论】:

    标签: continuous-integration travis-ci devops continuous-deployment


    【解决方案1】:

    这是你可以在脚本中处理的事情,方法是在参数中给它分支,例如

    script:
      - bash builddocker.sh $TRAVIS_BRANCH
    

    否则也可以使用build stages 并根据分支定义不同的作业,例如

    jobs:
      include:
        - name: master branch
          script: bash builddocker.sh dev-docker-repository
          if: branch = master
        - name: other branches
          script: bash builddocker.sh team-test-repository
          if: branch != master
    

    希望这会有所帮助!

    【讨论】:

    • 谢谢!我真的很喜欢定义作业的构建阶段。
    • 还有一件事。在我的存储库中,我有 5 个不同的 buildimages 脚本(A、B、C、D、E),每个脚本都构建不同的图像并将其推送到存储库。现在,如果我只对 A 进行更改,则会触发 travis 并构建所有图像,这是多余的。我能做点什么吗?就像在不同的文件夹上放置不同的脚本并在文件夹上放置一些挂钩。
    • @Damanpreet 您需要添加自定义逻辑才能仅构建您想要的图像,例如通过检查提交中修改的文件。
    猜你喜欢
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    相关资源
    最近更新 更多