【问题标题】:Why does Travis CI edit my files?为什么 Travis CI 编辑我的文件?
【发布时间】:2017-07-24 09:59:51
【问题描述】:

我是 Travis CI 的新手,我只是想了解这里发生的原因和情况。我已尽我所能按照他们文档中的设置说明进行操作。我得到的是:

  • 我在 Github 上的 Rails 代码
  • Travis CI 在我的 repo 推送到 github 分支 master 后立即构建它。
  • 如果构建成功,Travis CI 会将代码部署到 Heroku 应用。

我无法理解的是为什么我在构建完成后得到这个:

HEAD detached from 2a3b308
Changes not staged for commit:
.......
modified:   script/travis.sh

Untracked files:
  (use "git add <file>..." to include in what will be committed)

   vendor/bundle/

no changes added to commit (use "git add" and/or "git commit -a")

我在我的 .travis.yml 中做了一个before_install: - chmod +x script/travis.sh,我在我的构建日志中得到了chmod +x script/travis.sh。我有 git 版本 2.7.4

为什么我的script/travis.sh 被编辑了?我应该添加这些更改还是我的设置有问题?在 script/travis.sh 中,我有一些小命令要在构建之前执行,设置我的 Github 身份等。

为什么要添加这个文件夹vendor/bundle/

【问题讨论】:

    标签: ruby-on-rails git heroku travis-ci


    【解决方案1】:

    您需要添加一个 git diff 步骤来查看更改的性质,但请检查您的 travis 日志:如果您看到

    chmod a+x travis.sh
    

    这意味着您的原始 travis.sh 脚本未添加为可执行文件。

    在你的仓库中,做一个(Git 2.9.1+):

    git add --chmod=+x script/travis.sh
    git commit -m "Make travis.sh executable"
    git push
    

    然后再次检查 travis 在构建后是否仍将您的文件显示为已修改。


    关于vendor/bundle/,它不是“添加”的,只是生成和未跟踪的,这意味着您的repo没有被修改。
    Travis/Cache Bundle

    在 Ruby 和 Objective-C 项目中,通过 Bundler 安装依赖项可能占构建持续时间的很大一部分。在构建之间缓存包大大减少了构建运行的时间。

    如果您有自定义 Bundler 参数,并且这些参数包括 --path 选项,Travis CI 将使用该路径。如果--path 缺失但--deployment 存在,它将使用vendor/bundle

    【讨论】:

    • 感谢您的回复。我在我的 .travis.yml 中做了一个before_install: - chmod +x script/travis.sh,我在我的构建日志中得到了chmod +x script/travis.sh。我有 git 2.7 版。
    • 更新:这解决了 travis.sh 被修改的问题。现在只添加了vendor/bundle/
    • 谢谢。所以理论上我不需要做任何事情,对吧?但我认为有这个输出看起来很丑。我可以以某种方式将其过滤掉,还是我只需要接受它将是这样的?
    • @bork 是:将vendor/bundle 添加到您的.gitignore(添加、提交和推送)。这样,最后的 travis git status 就不会提及了。
    猜你喜欢
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 2019-05-10
    • 2020-01-28
    • 1970-01-01
    相关资源
    最近更新 更多