我正在尝试使用他们的 docker 图像( Their docker images )在我的本地机器上运行 travis build。他们的指令是 here 。
我能够下载并运行 docker 机器,我切换到 travis
用户,然后克隆我的 repo。但我不太明白如何运行 travis.yml 文件以便开始构建。
我已经搜索并尝试使用 travis-cli
和 travis-build
但没有成功。我愿意接受有关在运行 travis 之前/同时/之后与 travis 构建交互(当然使用命令行)的建议( 以加快调试速度 )。
最佳答案
我设法拼凑了来自各种来源的 Dockerfile 和我自己的一些来源。有两个图像:一个用于 travis
可用的基础和一个特定于“org/repo”GitHub 项目的项目(确保使用真实项目名称替换出现的项目)。它使用本地未提交的存储库版本(因此是 sed
s)。在 travis-local-build
启动并运行后,./build.sh
将触发类似于 travis-ci.org 的 CI 构建。
Dockerfile.travis-本地
#!docker build -f Dockerfile.travis-local -t travis-local .
FROM travisci/ci-amethyst:packer-1512508255-986baf0
USER travis
WORKDIR /home/travis
RUN git clone https://github.com/travis-ci/travis-build.git
WORKDIR travis-build
RUN bash -lc "gem install travis"
RUN bash -lc travis # to create ~/.travis
RUN ln -s $(pwd) ~/.travis/travis-build
RUN bash -lc "bundle install"
#RUN bash -lc "bundler add travis"
RUN bash -lc "bundler binstubs travis"
RUN echo alias travis="~/.travis/travis-build/bin/travis" >> ~/.bashrc
Dockerfile.travis-local-build
#!docker build -f Dockerfile.travis-local-build -t travis-local-build . && docker run -ti travis-local-build
FROM travis-local
USER travis
WORKDIR /home/travis/build
ADD --chown=travis . org/repo
WORKDIR org/repo
RUN chmod +x gradlew
# Alias not recognized, but in interactive mode `travis compile` works without path.
RUN bash -lc "~/.travis/travis-build/bin/travis compile --no-interactive > build.sh"
RUN sed -re 's/^.*travis_wait_for_network '\''.*$/echo DISABLED &/mg' build.sh --in-place
RUN sed -re 's/^.*apt-get update.*$/echo DISABLED &/mg' build.sh --in-place
RUN sed -re 's/^.*travis_cmd git.*(fetch|reset|checkout).*$/echo DISABLED &/mg' build.sh --in-place
RUN chmod +x build.sh
WORKDIR /home/travis/build
RUN sudo ln -s org/repo/build.sh build.sh
CMD ["bash"]
免责声明:我是 Docker 的新手,只使用了几个小时,所以我可能弄错了一些概念。在评论中表示赞赏的任何指针。
关于docker - 使用 docker 在本地运行 Travis,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35837905/