使用Travis CI(使用docker)对Perl存储库进行本地测试

时间:2019-05-13 09:40:06

标签: perl docker travis-ci travis-ci-cli

我想修复Perl存储库中的一个错误(现在归我所有,我刚刚提交了一些拉取请求),但目前(在我的拉取请求之前)它的Travis CI测试失败。

我的目标是能够从存储库的.travis.yml开始在本地运行Travis CI测试。

请注意,我是Travis CI的新手。

在遵循该常见问题解答(http://web.archive.org/web/20180929150027/https://docs.travis-ci.com/user/common-build-problems/#troubleshooting-locally-in-a-docker-image)的其他解决方案之后,正如您所见,travis-ci.com不再正式提供该服务,我尝试过:

sudo  docker pull travisci/ci-amethyst:packer-1512508255-986baf0
sudo docker run --name travis-debug -dit travisci/ci-amethyst:packer-1512508255-986baf0 /sbin/init
sudo docker exec -it travis-debug bash -l

从容器中

su - travis
git clone https://github.com/{user}/{repo}.git

现在,我不知道如何构建bash脚本来运行测试,因为最后两个步骤(手动安装依赖项/运行您的Travis CI构建)看起来很神秘(我不知道如何运行构建,并可能导致缺乏可重复性(如果我手动安装依赖项,我怎么知道我将获得与云测试相同的结果?)

我尝试从此处描述的过程开始(https://github.com/travis-ci/travis-build ),一个错误是“无法找到Gemfile或.bundle /目录”,但我可能需要一些缺少的步骤。

1 个答案:

答案 0 :(得分:3)

对于它的价值,我认为您从错误的角度出发。

Travis只是远程运行您的东西。除了将Travis引入您的计算机外,您需要首先使测试在本地通过(无论是否是秘密的),都无法解决,特别是如果您要拥有此存储库。

我建议这样做的另一个原因是,正如您已经看到的那样,当您依靠某种东西来远程测试代码时,develop-debug-fix周期要长得多。 >

根据我的经验,.travis.yml应该非常简单,因为它只运行一个或两个可以在本地轻松运行的脚本或命令。

如果您对Docker感到满意,我会考虑构建具有所有依赖项的本地Dockerfile,并在您的Docker环境中使测试生效。成功完成此步骤后,要求Travis进行相同的操作(在docker中运行测试)很简单。

不确定是不是您要的答案,但是评论太久了。