gpt4 book ai didi

github - 在 Travis CI 中设置上游项目

转载 作者:行者123 更新时间:2023-12-01 03:35:40 26 4
gpt4 key购买 nike

我正在做项目,我有两个 Git 存储库:

Repo1 - DevRepo,Rep02- TestRepo

我的场景是:
每当 Repo1 上发生提交或 PR 时:

Step1:立即触发Repo2

Step2:一旦Step1成功,就应该触发Repo1。

基本上 Repo1 应该只在 Repo2 运行并且成功时才构建。

有人可以帮助我如何设置它,非常感谢:

  • 我应该配置哪个 .travis.yml 文件来满足我的场景。
  • 我可以在我的 .travis.yml 文件中编写的确切配置步骤
  • 最佳答案

    回答:我得到了这个工作:

  • 使用 travis api 触发您的依赖构建:Repo2:
    创建一个 trigger_build.sh 文件并添加以下代码:

  • `
    body ='{
    “要求”: {
    “分支”:“主人”
    }}'

    curl -s -X POST\
    -H "内容类型:应用程序/json"\
    -H "接受:应用程序/json"\
    -H "Travis-API-版本: 3"\
    -H "授权: token ..git_hub_login_token.."\
    -d "$body"\
    https://api.travis-ci.org/repo/xxxx%2Fyyyy/requests

    #15s sleep 是为了让 Travis 触发依赖构建:
    睡15`
  • 创建一个新的或单独的 get_build_status.sh 文件。轮询依赖构建的状态。根据 Repo2 构建的状态,我们将继续构建 Repo1 或停止构建 Repo1:

  • # 轮询 Repo2 构建状态
    # 设置 Repo2 构建运行的最长时间,但是一旦我们获得通过/失败的状态,我们将返回到 Repo1 构建运行

    `i=1
    最大值=300
    而 [ $i -lt $max ]


    回声“--------------------------------------------”
    echo "轮询测试运行构建状态..."`

    curl -i -H "接受:application/vnd.travis-ci.2+json""https://api.travis-ci.org/repos/xxxx/yyyy/builds"> test.json
    LATEST_STATE=$(grep -o '"state":.[a-z\"]*' test.json | head -1)
    #LATEST_ID=$(grep -o '"id":.[0-9]*' test.json | head -1 | grep ':.[0-9]*')

    get_state_value=${LATEST_STATE#*:}
    STATE="${get_state_value//\"}"

    如果 [ $STATE == “通过” ]
    然后
    回声“测试运行... $STATE :-)”
    break #Repo2 运行一通过,我们就中断并返回到 Repo1 构建运行
    elif [ $STATE == “失败” ]
    然后
    回声“测试运行... $STATE :-(”
    echo "停止构建元素"
    exit 1 #一旦Repo2运行失败,我们就停止构建Repo1


    真 $(( i++ ))
    sleep 1 #这个1s需要每秒轮询构建状态
    完毕

  • 您的 .travis.yml 配置:

  • 脚本:
    -chmod 777 ./trigger_build.sh
    -chmod 777 ./get_build_status.sh
    - ./trigger_build.sh
    - ./get_build_status.sh

    关于github - 在 Travis CI 中设置上游项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35165970/

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