我正在使用Travis CI从this bookdown
GitHub repo建立站点并部署到gh-pages
分支。这种方法通常可行,但是我也想使用Netlify来显示拉取请求的预览草稿。到目前为止,Netlify部署通知正在响应传入的源文件,而不是Travis正在构建的HTML文件。 Netlify预览版为时过早,页面空白。
在此specific project中,我们有一堆源文件,这些源文件最终为站点生成HTML文件。 master
分支仅具有源,而gh-pages
分支仅具有HTML。我正在使用Travis使用master
上的源代码编译HTML,然后将其推送到gh-pages
。这对我自己的开发非常有用,因为它可以自动完成10分钟的网站生成过程。
我希望使用Netlify来使来自协作者和开放源社区的外部志愿者的拉动请求的站点预览成为可能。我看到了类似下面的图片。
gh-pages
或推送到GitHub。而是将HTML文件直接发送到Netlify。我意识到,对Travis环境变量的安全限制使这成为了不可能的一部分,这是正确的。但这是我最终希望实现的自动化部署。
答案 0 :(得分:2)
免责声明:我为Netlify工作
Netlify的构建通知只能反映Netlify的构建-如果其他构建并行运行,则无法在我们的通知中考虑Travis的状态。也许您可以重新配置CI,而不是使用github基于提交的webhooks通知Netlify进行构建,而是使用Travis中的一个在Netlify上启动构建?然后,Netlify的构建将在他们的构建结束之后开始。为此,您可以从GitHub上删除构建钩子,而使用incoming webhook,您可以每分支配置一个,尽管您可能需要Travis的一些逻辑来决定是否使用哪个通知许多分支。您可以通过编程方式(https://open-api.netlify.com/#!/default/createHookBySiteId)通过API进行配置,但我们很乐意为the helpdesk
中的API逐步使用提供建议如果这很麻烦(例如,您有很多短期使用的分支机构),那么我知道这可能不是一个很好的解决方案。在那种情况下,我可能会从社交角度解决问题,只是训练我的开发团队在Travis检查完成之前不要查看部署预览:)
由于用例不断发展,并且我在注释中给出了更好的答案,因此我将在此处进行描述:
您可以选择使用命令行实用程序netlifyctl部署Travis构建的文件。这将获取您网站的副本并将文件发送给我们,并且可以编写脚本。您可以选择以netlifyctl deploy
的形式立即发布这些结果(“测试已通过Travis,我们已经准备就绪,可以上线了”),也可以选择发布可以在部署预览URL({{3 }})使用netlifyctl deploy -d
。
这并没有解决最初关于提交状态通知的问题,因为我们仅发送那些针对我们构建的git支持的部署的通知,但是它确实允许您发布已知良好的部署,并且netlifyctl deploy
确实输出了运行时的URL(https://hash--sitename.netlify.com),以便您可以“执行某项操作”,例如制作通知,该通知也是从构建+发送到netlify的过程中生成的,例如松弛或电子邮件。