gpt4 book ai didi

travis-ci - 如何让 Travis 有条件的构建阶段工作?

转载 作者:行者123 更新时间:2023-12-04 10:47:04 25 4
gpt4 key购买 nike

我的目标是在 Travis 流程中包含三个步骤:

  • 测试(始终)
  • 构建(docker 镜像,仅当分支合并时
    进入发展)
  • 部署(与构建相同)

  • 我读过 documentation on build stages and conditionals 但我似乎误解了一些东西,因为 Travis 总是执行所有三个阶段(例如,当我推送一个功能分支时)。

    我目前的设置如下:
    jobs:
    include:
    - stage: test
    script: ".travis/01-test.sh"
    - stage: build
    script: ".travis/02-build-and-push-image.sh"
    if: (branch = develop) AND (NOT(type IN (push, pull_request)))
    - stage: deploy
    script: ".travis/03-deploy.sh staging"
    if: (branch = develop) AND (NOT(type IN (push, pull_request)))

    当我打开 Travis 构建页面上的配置选项卡时,我可以看到这个配置,所以它不应该是解析错误。我也试过分别列出工作和阶段,但结果是一样的:
    jobs:
    include:
    - stage: test
    script: ".travis/01-test.sh"
    - stage: build
    script: ".travis/02-build-and-push-image.sh"
    - stage: deploy
    script: ".travis/03-deploy.sh staging"
    stages:
    - test
    - name: build
    if: (branch = develop) AND (NOT(type IN (push, pull_request)))
    - name: deploy
    if: (branch = develop) AND (NOT(type IN (push, pull_request)))

    我怎样才能使这项工作?我错过了什么吗?我知道构建阶段是一个测试版功能,但我认为这应该已经可以工作了,根据 Travis blog post

    最佳答案

    我可以在内部解析条件时确认这是一个问题。

    您可以尝试在“NOT”运算符后添加一个空格吗?如:

    if: (branch = develop) AND (NOT (type IN (push, pull_request)))

    这似乎解决了问题,我想知道 Travis 是否将 not() 检测为函数(就像它与 env(foo) 一样),因此这会导致错误。

    关于travis-ci - 如何让 Travis 有条件的构建阶段工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47803593/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com