travis-ci - 如何在本地运行 travis-ci

标签 travis-ci

我不想为了运行构建而将每一个小的更改都推送到 .travis.yml 以及对源代码所做的每一个小的更改。使用jenkins,您可以下载jenkins并在本地运行。特拉维斯提供这样的东西吗?

Note: I've seen the travis-ci cli and downloaded it, but all it seems to do is call their API, which then connects to my GitHub repo, so if I don't push, it won't matter that I restart the last build.

最佳答案

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

先决条件

  • 您在 GitHub 上有公共(public)存储库
  • 您至少在 Travis 上运行了一个版本
  • You have Docker在您的计算机上进行设置

设置构建环境

引用:https://docs.travis-ci.com/user/common-build-problems/

  1. 创建您自己的临时构建 ID

    BUILDID="build-$RANDOM"
    
  2. 查看 the build log ,打开 WORKER INFORMATION 的显示更多按钮并找到 INSTANCE 行,将其粘贴到此处并运行(替换冒号后的标记 with the newest available one) :

    INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
    
  3. 运行 headless 服务器

    docker run --name $BUILDID -dit $INSTANCE /sbin/init
    
  4. 运行附加的客户端

    docker exec -it $BUILDID bash -l
    

运行作业

现在您已进入 Travis 环境。运行 su - travis 开始。

此步骤定义明确,但比较繁琐且需要手动操作。您将找到 Travis 在环境中运行的每个命令。为此,请在右列中查找具有 0.03s 等标签的所有内容。

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

结果

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

  • 如果您的存储库是私有(private)的:ssh-keygen -t rsa -b 4096 -C "YOUR EMAIL REGISTERED IN GITHUB" 然后cat ~/.ssh/id_rsa.pubclick here添加 key
  • 仅供引用:在将提交推送到 GitHub 之前,您可以从 docker 内部 git pull 加载开发框中的提交
  • 如果您想更改 Travis 运行的命令,那么您有责任弄清楚如何将其转换回有效的 .travis.yml
  • 我不知道如何清理Docker环境,看起来很复杂,可能会泄漏内存

关于travis-ci - 如何在本地运行 travis-ci,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21053657/

相关文章:

github - 我可以拒绝 travis-ci 对组织的访问吗?

amazon-web-services - 将 Docker 从 Travis 部署到 AWS(或任何其他支持 SSH 的服务器)

android - Travis CI Build在Android应用程序上失败不受支持的major.minor版本52

python - .ttf 文件导致 Travis CI 中的构建错误

testing - Travis-CI 可以运行 Codeception 测试吗?

travis-ci - 如何解决Travis CIs 4MB输出限制?

java - Travis 在 Bintray 中部署库。构建文件夹不存在

github - 通过 travis API 获取 repo 的最新 travis 构建状态

r - 计算代码覆盖率时 Travis-CI 出现 "failed to find package directory"错误

travis-ci - 将 secret 环境变量添加到 Travis CI