2014 年 3 月 10 日
关注 @micheletitoloTL;DR 现在,只要我们推送至 master,指南和博客都会自动部署。
我们一直在寻找让对 CocoaPods 的贡献变得更简单的方法,而自动部署指南和博客对我们来说是一个快速获胜的方法。现在,团队的任何成员都可以接受 PR,Travis 可以在几分钟内部署更改。
脚本
Travis 需要有关如何构建此代码的说明。虽然你可以直接将所有这些命令添加到 Travis 配置中,但这种方法难以调试,并且会移除手动设置和部署的能力。
每个 CocoaPods 存储库都有一个 rake bootstrap
命令来确保环境设置好,每个站点都有一个 rake deploy
命令。过去花时间设置这些命令,使得将此流程与 Travis 集成变得非常容易。
使用 Travis 推送至 GitHub Pages
一旦我弄清楚正确的步骤,设置这两个存储库以推送至 GitHub 页面就非常简单了。
1. Travis 需要成为一个用户
由于 Travis 需要推送至 GitHub,因此它需要一个用户。选择或创建一个用户,并获取个人访问令牌。此令牌在 GitHub 的帐户设置中生成。我们选择使用 CocoaPods Bot 帐户。
2. 使用该用户进行身份验证
为了识别此用户,Travis 需要凭据。我选择使用 travis
gem 加密用户信息。我在项目目录中使用 add
标志运行了以下命令,因此它会自动将加密输出添加到 .travis.yml
travis encrypt 'GIT_NAME="Account Name" [email protected] GH_TOKEN=SOMEREALLYLONGSTRING' --add
3. 设置和部署
Travis 在完全新的签出中构建,因此设置环境是关键。值得庆幸的是,两个站点都有 rake bootstrap
命令,因此我能够重复使用该命令。
部署脚本最终成为棘手的一部分。这里的重要步骤是确保部署脚本依赖于设置的git remote
。我们的所有静态站点都有一个rake deploy
命令,我修改了该命令以删除远程的硬编码。
4. travis.yml
在.travis.yml
中配置 git 设置。默认情况下,Travis 没有用户,因此你应该设置user.email
和user.name
以进行推送。这些应该与你使用令牌加密的凭据匹配。
install:
- git config --global user.email "[email protected]"
- git config --global user.name "CocoaPods Bot"
5. 更新远程
在此设置中,Travis 无权访问存储库的 ssh。将git remote
更改为指向带有令牌的https
。令牌用于验证推送。以下是博客设置的样子
git remote set-url origin "https://${GH_TOKEN}@github.com/CocoaPods/blog.cocoapods.org.git"
6. 启用 Travis 构建
这通过设置完成。此外,由于这是一个部署构建,因此请确保在进行拉取请求时不构建。
7. 提交并推送你的更改。
希望一切顺利。如果没有,你可以进行更多更改、推送并等待 Travis 构建。
.travis.yml
language: ruby
branches:
only:
- master
rvm:
- 2.0.0
install:
- git config --global user.email "[email protected]"
- git config --global user.name "CocoaPods Bot"
- rake bootstrap
script:
- git remote set-url origin "https://${GH_TOKEN}@github.com/CocoaPods/blog.cocoapods.org.git"
- rake deploy
env:
global:
secure: XXXX
结论
这就是我们现在设置 Travis 部署的方式。CocoaPods 是一个社区努力,因此降低贡献障碍一直是我们的目标。这个新设置就是这样做的。尽情编辑吧!