我可不想把每一个小改动都推给。travis。yml和我对源代码所做的每一个小更改,以便运行构建。使用jenkins,您可以下载jenkins并在本地运行。特拉维斯会提供这样的东西吗?

注意:我已经看到了travis-ci命令行并下载了它,但它似乎 要做的就是调用他们的API,然后连接到我的GitHub回购,所以如果 我不推,重启最后的构建也没有关系。


当前回答

我不确定你在本地运行特拉维斯的最初原因是什么,如果你只是想玩它,那么停止阅读这里,因为它与你无关。

如果您已经有托管Travis的经验,并且希望在自己的数据中心获得相同的经验,请继续阅读。

自2014年12月Travis CI提供企业内部版本。

http://blog.travis-ci.com/2014-12-19-introducing-travis-ci-enterprise/

定价也是文章的一部分:

授权是按座位进行的,每个授权包括20个用户。每个许可证的定价为6,000美元起,包括20个用户和5个并发构建。这里有一个8500美元的无限版本的高级选项。

其他回答

Travis-ci提供了一个新的基于容器的基础设施,它使用docker。如果您试图通过在本地复制travis-ci构建来排除故障,这可能非常有用。这是从特拉维斯·CI的文档中截取的。

在Docker映像中进行本地故障排除

如果在跟踪构建中的确切问题时遇到困难,在本地运行构建通常会有所帮助。要做到这一点,你需要使用我们基于容器的基础设施(例如,在你的. Travis .yml中有sudo: false),并知道你在Travis CI上使用的是哪个Docker映像。

本地运行基于容器的Docker镜像

下载并安装Docker引擎。 从Docker Hub中选择一个映像。如果您不使用特定于语言的映像,则选择ci-ruby。打开终端,使用镜像URL启动交互式Docker会话: Docker运行- travisci/ubuntu-ruby:18.04 /bin/bash 切换到travis用户: Su - Travis 将git存储库克隆到映像的/文件夹中。 手动安装任何依赖项。 手动运行Travis CI构建命令。

使用wwtd (travis会做什么)ruby gem在本地机器上运行测试,大致就像它们在travis上运行一样。

它将重新创建构建矩阵并运行每个配置,在推送之前检查设置。

gem i wwtd
wwtd

我不确定你在本地运行特拉维斯的最初原因是什么,如果你只是想玩它,那么停止阅读这里,因为它与你无关。

如果您已经有托管Travis的经验,并且希望在自己的数据中心获得相同的经验,请继续阅读。

自2014年12月Travis CI提供企业内部版本。

http://blog.travis-ci.com/2014-12-19-introducing-travis-ci-enterprise/

定价也是文章的一部分:

授权是按座位进行的,每个授权包括20个用户。每个许可证的定价为6,000美元起,包括20个用户和5个并发构建。这里有一个8500美元的无限版本的高级选项。

类似于Scott McLeod的,但它也生成一个bash脚本来运行.travis.yml中的步骤。

在Docker中使用生成的Bash脚本进行本地故障排除

# choose the image according to the language chosen in .travis.yml
$ docker run -it -u travis quay.io/travisci/travis-jvm /bin/bash

# now that you are in the docker image, switch to the travis user
sudo - travis

# Install a recent ruby (default is 1.9.3)
rvm install 2.3.0
rvm use 2.3.0

# Install travis-build to generate a .sh out of .travis.yml
cd builds
git clone https://github.com/travis-ci/travis-build.git
cd travis-build
gem install travis
# to create ~/.travis
travis version
ln -s `pwd` ~/.travis/travis-build
bundle install

# Create project dir, assuming your project is `AUTHOR/PROJECT` on GitHub
cd ~/builds
mkdir AUTHOR
cd AUTHOR
git clone https://github.com/AUTHOR/PROJECT.git
cd PROJECT
# change to the branch or commit you want to investigate
travis compile > ci.sh
# You most likely will need to edit ci.sh as it ignores matrix and env
bash ci.sh

此过程允许您在计算机上完全重现任何Travis构建作业。此外,您可以在任何时候中断该过程并进行调试。下面是一个例子,我在php-school/cli-menu上完美地复制了作业#191.1的结果 .

先决条件

你在GitHub上有公共回购 你至少对特拉维斯进行了一次调查 您已经在计算机上设置了Docker

设置构建环境

参考:https://docs.travis-ci.com/user/common-build-problems/

创建自己的临时构建ID BUILDID = "建设-随机”美元 查看构建日志,打开WORKER INFORMATION的show more按钮,找到INSTANCE行,将其粘贴到这里并运行(将冒号后的标记替换为最新可用的标记): 实例= " travisci / ci-garnet:封隔器- 1512502276 - 986 - baf0” 运行无头服务器 docker运行——name $BUILDID -dit $INSTANCE /sbin/init 运行附加的客户端 docker execute - $BUILDID bash -l

运行作业

现在你在Travis环境中。运行su - travis开始。

这个步骤定义很好,但是比较繁琐,需要手工操作。您将发现Travis在环境中运行的每个命令。要做到这一点,请在右列中查找带有0.03s这样标签的所有内容。

在左边,您将看到实际的命令。按顺序运行这些命令。

结果

现在是运行history命令的好时机。您可以重新启动流程并重放这些命令,以针对更新的代码库运行相同的测试。

如果你的repo是私有的:ssh-keygen -t rsa -b 4096 -C " your EMAIL REGISTERED IN GITHUB"然后cat ~/.ssh/id_rsa。Pub和点击这里添加一个密钥 供你参考:在你把它们推送到GitHub之前,你可以从docker内部的git拉到你的开发箱中加载提交 如果你想改变Travis运行的命令,那么你有责任弄清楚如何将其转换回工作的. Travis .yml。 我不知道如何清理Docker环境,它看起来很复杂,可能这泄露了内存