我刚加入了一个项目,我是travis-ci的新手.我宁愿不必将每一个小改动都推到.travis.yml以及我为源代码运行构建所做的每一点改变.使用jenkins,您可以下载jenkins并在本地运行.特拉维斯提供这样的东西吗?
注意:我已经看过travis-ci cli并下载了它,但它似乎只是调用它们的API,然后连接到我的github repo,所以如果我不推送,重启就没关系最后的构建.
Wil*_*ken 170
此过程允许您在计算机上完全复制任何Travis构建作业.此外,您可以随时中断该过程并进行调试.下面是一个例子,我在php-school/cli-menu上完美地重现了作业#191.1 的结果.
参考:https://docs.travis-ci.com/user/common-build-problems/
组成您自己的临时构建ID
BUILDID="build-$RANDOM"
Run Code Online (Sandbox Code Playgroud)查看构建日志,打开WORKER INFORMATION的show more按钮并找到INSTANCE行,将其粘贴到此处并运行(使用最新的可用冒号替换冒号后的标记):
INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
Run Code Online (Sandbox Code Playgroud)运行无头服务器
docker run --name $BUILDID -dit $INSTANCE /sbin/init
Run Code Online (Sandbox Code Playgroud)运行连接的客户端
docker exec -it $BUILDID bash -l
Run Code Online (Sandbox Code Playgroud)现在您已进入Travis环境.跑su - travis开始.
这个步骤定义明确,但更繁琐且手动.您将找到Travis在环境中运行的所有命令.要执行此操作,请在右列中查找具有标记的所有内容0.03s.
在左侧,您将看到实际的命令.按顺序运行这些命令.
现在是运行history命令的好时机.您可以重新启动该进程并重播这些命令,以针对更新的代码库运行相同的测试.
ssh-keygen -t rsa -b 4096 -C "YOUR EMAIL REGISTERED IN GITHUB"然后cat ~/.ssh/id_rsa.pub和点击此处添加关键git pull从docker内部加载来自开发框的提交,然后再将它们推送到GitHub.travis.yml.Sco*_*eod 160
Travis-ci提供了一个使用docker的基于容器的新基础架构.如果您尝试通过在本地再现它来解决travis-ci构建问题,这可能非常有用.这取自Travis CI的文档.
如果您在跟踪构建中的确切问题时遇到问题,那么在本地运行构建通常会有所帮助.要做到这一点,您需要使用我们基于容器的基础架构(即,sudo: false在您的基础架构中.travis.yml),并了解您在Travis CI上使用的Docker镜像.
从Docker Hub中选择一个图像.如果您没有使用特定于语言的图片选择ci-ruby.打开终端并使用图像URL启动交互式Docker会话:
docker run -it travisci/ubuntu-ruby:18.04 /bin/bash
Run Code Online (Sandbox Code Playgroud)切换到travis用户:
su - travis
Run Code Online (Sandbox Code Playgroud)/图像的文件夹中.Wil*_*ken 83
更新:我现在有一个完整的交钥匙,一体化答案,请参阅/sf/answers/3431396531/.只花了3年时间搞清楚!
根据Travis的文档:https://github.com/travis-ci/travis-ci有一个项目的混合物,它们共同提供我们熟悉和喜爱的Travis CI网络服务.以下项目子集似乎允许make test使用项目中的本地功能.travis.yml:
travis-build为每个作业创建构建脚本.它从.travis.yml文件中获取配置并创建一个bash脚本,然后由travis-worker在构建环境中运行.
travis-cookbooks拥有用于配置构建环境的 Chef cookbook.
travis-worker负责在干净的环境中运行构建脚本.它将日志输出流式传输到travis-logs并将状态更新(构建开始/结束)推送到travis-hub.
(其他子项目负责与GitHub,他们的Web界面,电子邮件及其API进行通信.)
ere*_*gon 22
与Scott McLeod相似,但这也会生成一个bash脚本来运行.travis.yml中的步骤.
# 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
Run Code Online (Sandbox Code Playgroud)
gro*_*ser 16
使用wwtd(travis会做什么) ruby gem在本地计算机上运行测试,就像在travis上运行一样.
它将重新创建构建矩阵并运行每个配置,非常适合在推送之前进行完整性检查设置.
gem i wwtd
wwtd
Run Code Online (Sandbox Code Playgroud)
Duš*_*ďar 10
tl; dr将https://docs.travis-ci.com/user/common-build-problems/#troubleshooting-locally-in-a-docker-image中指定的图像与https://github.com/结合使用travis-ci / travis-build#use-as-on-travis-cli。
#troubleshooting-locally-in-a-docker-image本节不再是文档的一部分;这就是为什么
但是,它仍然在git历史中:https : //github.com/travis-ci/docs-travis-ci-com/pull/2193。
在以下位置查找(相当旧的,找不到较新的)映像版本:https : //travis-ci.org/travis-ci/docs-travis-ci-com/builds/230889063#L661。
我想检查一下为什么我的构建中的一个测试失败并显示了错误,而该错误不是我在本地得到的。
工作了。
实际可行的方法是使用Docker Image docs页面中的本地故障排除中指定的图像。就我而言travisci/ci-garnet:packer-1512502276-986baf0。
我能够添加travise compile在https://github.com/travis-ci/travis-build#use-as-addon-for-travis-cli中描述的以下步骤。
dm@z580:~$ docker run --name travis-debug -dit travisci/ci-garnet:packer-1512502276-986baf0 /sbin/init
dm@z580:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
travisci/ci-garnet packer-1512502276-986baf0 6cbda6a950d3 11 months ago 10.2GB
dm@z580:~$ docker exec -it travis-debug bash -l
root@912e43dbfea4:/# su - travis
travis@912e43dbfea4:~$ cd builds/
travis@912e43dbfea4:~/builds$ git clone https://github.com/travis-ci/travis-build
travis@912e43dbfea4:~/builds$ cd travis-build
travis@912e43dbfea4:~/builds/travis-build$ mkdir -p ~/.travis
travis@912e43dbfea4:~/builds/travis-build$ ln -s $PWD ~/.travis/travis-build
travis@912e43dbfea4:~/builds/travis-build$ gem install bundler
travis@912e43dbfea4:~/builds/travis-build$ bundle install --gemfile ~/.travis/travis-build/Gemfile
travis@912e43dbfea4:~/builds/travis-build$ bundler binstubs travis
travis@912e43dbfea4:~/builds/travis-build$ cd ..
travis@912e43dbfea4:~/builds$ git clone --depth=50 --branch=master https://github.com/DusanMadar/PySyncDroid.git DusanMadar/PySyncDroid
travis@912e43dbfea4:~/builds$ cd DusanMadar/PySyncDroid/
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ ~/.travis/travis-build/bin/travis compile > ci.sh
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ sed -i 's,--branch\\=\\\x27\\\x27,--branch\\=master,g' ci.sh
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ bash ci.sh
Run Code Online (Sandbox Code Playgroud)
一切都.travis.yml按预期执行(安装了依赖项,运行了测试,...)。
请注意,在运行之前,bash ci.sh我必须在中更改--branch\=\'\'\为--branch\=master\(请参阅倒数第二个sed -i ...命令)ci.sh。
如果这样不起作用,则下面的命令将有助于识别目标行号,您可以手动编辑该行。
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ cat ci.sh | grep -in branch
840: travis_cmd git\ clone\ --depth\=50\ --branch\=\'\'\ https://github.com/DusanMadar/PySyncDroid.git\ DusanMadar/PySyncDroid --echo --retry --timing
889:export TRAVIS_BRANCH=''
899:export TRAVIS_PULL_REQUEST_BRANCH=''
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$
Run Code Online (Sandbox Code Playgroud)
没用
遵循了该问题的可接受答案,但在https://hub.docker.com/u/travisci/上未找到travis-ci-garnet-trusty-1512502259-986baf0提及的图像()。instance
生成工作程序版本指向travis-ci / worker提交及其作为映像注册表的travis-worker-install引用quay.io/travisci/。所以我尝试了。
dm@z580:~$ docker run -it -u travis quay.io/travisci/travis-python /bin/bash
travis@370c23a773c9:/$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise
travis@370c23a773c9:/$
dm@z580:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
quay.io/travisci/travis-python latest 753a216d776c 3 years ago 5.36GB
Run Code Online (Sandbox Code Playgroud)
绝对不是Trusty(Ubuntu 14.04),也不小。
我不确定你在本地运行Travis的原因是什么,如果你只是想玩它,那就停止在这里阅读,因为这对你来说无关紧要.
如果您已经拥有托管Travis的经验并希望在自己的数据中心获得相同的体验,请继续阅读.
自2014年12月起, Travis CI提供企业内部部署版本.
http://blog.travis-ci.com/2014-12-19-introducing-travis-ci-enterprise/
定价也是文章的一部分:
许可是按席位完成的,每个许可包括20个用户.每个许可证的起价为6,000美元,其中包括20个用户和5个并发版本.这是一个高级选项,无限制,8,500美元.
| 归档时间: |
|
| 查看次数: |
151133 次 |
| 最近记录: |