我不想为了运行构建而将每一个小的更改都推送到 .travis.yml
以及对源代码所做的每一个小的更改。使用jenkins,您可以下载jenkins并在本地运行。特拉维斯提供这样的东西吗?
Note: I've seen the travis-ci cli and downloaded it, but all it seems to do is call their API, which then connects to my GitHub repo, so if I don't push, it won't matter that I restart the last build.
最佳答案
此过程允许您在计算机上完全重现任何 Travis 构建作业。此外,您可以随时中断该过程并进行调试。下面是我完美重现 job #191.1 on php-school/cli-menu 的结果的示例.
先决条件
- 您在 GitHub 上有公共(public)存储库
- 您至少在 Travis 上运行了一个版本
- You have Docker在您的计算机上进行设置
设置构建环境
引用:https://docs.travis-ci.com/user/common-build-problems/
创建您自己的临时构建 ID
BUILDID="build-$RANDOM"
查看 the build log ,打开 WORKER INFORMATION 的显示更多按钮并找到 INSTANCE 行,将其粘贴到此处并运行(替换冒号后的标记 with the newest available one) :
INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
运行 headless 服务器
docker run --name $BUILDID -dit $INSTANCE /sbin/init
运行附加的客户端
docker exec -it $BUILDID bash -l
运行作业
现在您已进入 Travis 环境。运行 su - travis
开始。
此步骤定义明确,但比较繁琐且需要手动操作。您将找到 Travis 在环境中运行的每个命令。为此,请在右列中查找具有 0.03s 等标签的所有内容。
在左侧您将看到实际的命令。按顺序运行这些命令。
结果
现在是运行 history
命令的好时机。您可以重新启动该过程并重播这些命令,以针对更新的代码库运行相同的测试。
- 如果您的存储库是私有(private)的:
ssh-keygen -t rsa -b 4096 -C "YOUR EMAIL REGISTERED IN GITHUB"
然后cat ~/.ssh/id_rsa.pub
和 click here添加 key - 仅供引用:在将提交推送到 GitHub 之前,您可以从 docker 内部
git pull
加载开发框中的提交 - 如果您想更改 Travis 运行的命令,那么您有责任弄清楚如何将其转换回有效的
.travis.yml
。 - 我不知道如何清理Docker环境,看起来很复杂,可能会泄漏内存
关于travis-ci - 如何在本地运行 travis-ci,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21053657/