Continuous integration 触发Travis CI中依赖项目的生成

Continuous integration 触发Travis CI中依赖项目的生成,continuous-integration,travis-ci,Continuous Integration,Travis Ci,我们在一个存储库中有我们的单页javascript应用程序,在另一个存储库中有我们的后端服务器。后端服务器上正在传递的构建是否可以触发单页应用的构建 我们不希望将它们合并到单个存储库中,但我们确实希望确保对其中一个的更改不会破坏另一个存储库。是的,在第一个成功后,可以触发另一个Travis作业。您可以使用脚本 脚本的说明了如何使用它——设置一个环境变量并在.travis.yml文件中添加几行。可能是,也可能等待相关的生成结果 我从前面的答案中发现了trigger travis.sh,但在此之前,

我们在一个存储库中有我们的单页javascript应用程序,在另一个存储库中有我们的后端服务器。后端服务器上正在传递的构建是否可以触发单页应用的构建


我们不希望将它们合并到单个存储库中,但我们确实希望确保对其中一个的更改不会破坏另一个存储库。

是的,在第一个成功后,可以触发另一个Travis作业。您可以使用脚本


脚本的说明了如何使用它——设置一个环境变量并在
.travis.yml
文件中添加几行。

可能是,也可能等待相关的生成结果

我从前面的答案中发现了
trigger travis.sh
,但在此之前,我正在实现自己的解决方案(对于完整的工作源代码:cf.pending pull request and)

工具书类 基于travis API v3文档:

  • 触发构建
  • 获取构建信息
您将需要一个travis令牌,并将该令牌设置为travis portal上的secreet环境变量

在这个医生之后,我能够触发一个构建,并等待他

1) 制作
.travis\u hook\u qa.sh
(摘录)-要触发新生成,请执行以下操作:

REQUEST_RESULT=$(curl -s -X POST \
   -H "Content-Type: application/json" \
   -H "Accept: application/json" \
   -H "Travis-API-Version: 3" \
   -H "Authorization: token ${QA_TOKEN}" \
   -d "$body" \
   https://api.travis-ci.org/repo/${QA_SLUG}/requests)
(它是
trigger travis.sh
等价物)您可以对构建定义进行一些定制(使用
$body

2) make
.travis\u wait\u build.sh
(提取)-要等待刚创建的生成,请获取生成信息:

    BUILD_INFO=$(curl -s -X GET \
       -H "Content-Type: application/json" \
       -H "Accept: application/json" \
       -H "Travis-API-Version: 3" \
       -H "Authorization: token ${QA_TOKEN}" \
       https://api.travis-ci.org/repo/${QA_SLUG}/builds?include=build.state\&include=build.id\&include=build.started_at\&branch.name=master\&sort_by=started_atdesc\&limit=1 )
    BUILD_STATE=$(echo "${BUILD_INFO}" | grep -Po '"state":.*?[^\\]",'|head -n1| awk -F "\"" '{print $4}')
    BUILD_ID=$(echo "${BUILD_INFO}" | grep '"id": '|head -n1| awk -F'[ ,]' '{print $8}')
您必须等待超时或预期的最终状态


提醒:可能的travis构建状态是
已创建
已启动
(然后)
已通过
失败

从技术上讲,您可以通过某种方式将空提交从withing服务器的travis.yml文件推送到js应用程序repo(或“空”请求)。这会触发它。尽管你必须努力确保你的证件安全。