代码之家  ›  专栏  ›  技术社区  ›  Robert Moskal

根据条件提前终止buildspec,特别是在git标记上

  •  0
  • Robert Moskal  · 技术社区  · 7 年前

    build:
      commands:
        - echo ${CODEBUILD_WEBHOOK_TRIGGER##*/}
        - |
         if expr "${CODEBUILD_WEBHOOK_TRIGGER}" : '^tag/30' >/dev/null; then 
            git add *
            git commit -am "System commit"
            git push
            git tag ${CODEBUILD_WEBHOOK_TRIGGER##*/}
            git push origin ${CODEBUILD_WEBHOOK_TRIGGER##*/}
            echo Pushed the repo
         fi
    

    很好,我只在标签看起来有点像的时候才推。

    有办法吗?把我用的资源减到最少就好了。

    2 回复  |  直到 7 年前
        2
  •  2
  •   rgunter    7 年前

    对我来说,使用aws cli命令停止构建是可行的,它使用提供的CodeBuild环境变量${CodeBuild\u build\u ID}:

    - aws codebuild stop-build --id ${CODEBUILD_BUILD_ID}
    

    - |
        if expr "${CODEBUILD_WEBHOOK_TRIGGER}" : '^tag/30' >/dev/null; then 
            . . .
        else
            aws codebuild stop-build --id ${CODEBUILD_BUILD_ID}
        fi
    
        3
  •  0
  •   Robert Moskal    7 年前

    回答我自己的问题,您可以通过在源代码设置中指定分支过滤器来实现这一点。正则表达式似乎与从webhook返回的任何内容都匹配:

    ^tag/30
    

    这对我的标签模式有效。