Как изменить версию Ruby для Homebrew в macOS в Travis CI?

пытается запустить

if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install python3; fi

на before_install, Я

/usr/local/Homebrew/Library/Homebrew/brew.rb:12:in `<main>': Homebrew must be run under Ruby 2.3! (RuntimeError)  

The command "if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install python3; fi" failed and exited with 1 during .

Your build has been stopped.

/Users/travis/.travis/job_stages: line 166: shell_session_update: command not found  

поэтому я предполагаю, что проблема здесь в том, что ruby находится на версии 2.0, которую я подтвердил с ruby --version. Самое смешное, что мои сборки просто перестали работать внезапно, без каких-либо изменений .Трэвис.в формате YML.
Итак,как мне изменить версии Ruby?

может быть важно не, что раньше git clone запустить я получаю это:

$ rvm use

Warning! PATH is not properly set up, '/Users/travis/.rvm/gems/ruby-2.0.0-p648/bin' is not at first place,

         usually this is caused by shell initialization files - check them for 'PATH=...' entries,

         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',

         to fix temporarily in this shell session run: 'rvm use ruby-2.0.0-p648'.

5 ответов


ваш выбор, похоже, либо использовать

brew update
brew install whatever

или

HOMEBREW_NO_AUTO_UPDATE=1 brew install whatever

совет Тревис документации не делать brew update если это не кажется необходимым, кажется, оставить вас под угрозой случайного поломки, когда требование Рубина brew изменяется...


  • brew update
  • brew install ruby-build
  • brew установить rbenv
  • rbenv установить [version_required]
  • rbenv global [version_required]

для проектов .NET Core: вы можете избежать использования brew, не используя .NET Core по умолчанию Travis, но установив его с помощью сценария Microsoft .NET core sh. Раньше у меня было mono и dotnet набор определений версий, который я нашел, не был нужен после переключения на сценарий sh. Я смог исправить Homebrew must be run under Ruby 2.3! ошибка, удалив эти два определения (хотя мне тогда пришлось обновить libunwind8 в Linux перед установкой .NET core).

вот полный .Трэвис.и YAML для запуск теста проекта .NET core на osx и linux.

language: csharp

before_install:
  - if [ "$OS" = "linux" ]; then sudo apt-get install libunwind8; fi

script:
  - wget https://dot.net/v1/dotnet-install.sh && chmod +x dotnet-install.sh
  - ./dotnet-install.sh --version 1.1.4 --install-dir $HOME/.dotnet
  - $HOME/.dotnet/dotnet restore
  - $HOME/.dotnet/dotnet test YOUR_CSPROJ_FILE_PATH

matrix:
  include:
    - os: linux
      dist: trusty
      env: OS=linux
    - os: osx
      osx_image: xcode9
      env: OS=osx

branches:
  only:
    - master

Я добился успеха в изменении версии Ruby для Homebrew в macOS, создав личный токен доступа на GitHub и установив его на моем Mac как:

https://github.com/settings/tokens/new?scopes=gist,public_repo&description=Homebrew

и затем установите маркер:

export HOMEBREW_GITHUB_API_TOKEN="your_new_token"

Если у вас уже есть этот набор токенов, вы можете очистить их с помощью:

printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase

под управлением brew update до brew install package_name