我刚参加了一个项目,我是特拉维斯-奇的新手。为了运行构建,我不希望把所有的小更改都推到.travis.yml上,也不想把所有的小更改都推到源代码上。使用jenkins,您可以下载jenkins并在本地运行。特拉维斯提供了这样的东西吗?
注意:我已经看过travis-ci cli并下载了它,但是它似乎只调用了他们的API,然后连接到我的GitHub回购,所以如果我不按下,重新启动上一次构建就无关紧要了。
发布于 2018-11-17 18:08:00
tl;博士使用https://docs.travis-ci.com/user/common-build-problems/#troubleshooting-locally-in-a-docker-image和https://github.com/travis-ci/travis-build#use-as-addon-for-travis-cli结合指定的图像。
编辑2019-12-06
#troubleshooting-locally-in-a-docker-image部分被#running-builds-in-debug-mode所取代,后者也描述了如何使用在调试模式下运行的作业的SSH。。
编辑2019-07-26
#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上查找(相当老的,找不到更新的)图像版本。
我想要检查一下为什么我的构建中的一个测试失败了,我在本地没有得到错误。
成功了,
真正起作用的是使用在码头映像中的本地故障排除文档页面中指定的图像。在我的例子中,是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.travis.yml中的所有内容都按预期执行(安装了依赖项,测试运行,.)。
注意到,在运行bash ci.sh之前,我必须在ci.sh中将--branch\=\'\'\更改为--branch\=master\ (参见最后一个sed -i ...命令的第二个)。
如果不起作用,下面的命令将有助于识别目标行号,并且您可以手动编辑行。
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$没有起作用,
遵循这个问题的公认答案,但没有找到instance在https://hub.docker.com/u/travisci/上提到的图像(https://hub.docker.com/u/travisci/)。
构建工人版本指向travis-ci/工人承诺及其travis-工人-安装引用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绝对不可信(Ubuntu14.04),也不小。
https://stackoverflow.com/questions/21053657
复制相似问题