web-dev-qa-db-fra.com

Comment changer la version Ruby pour Homebrew sous macOS dans Travis CI?

Essayer de courir

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

dans before_install, Je me retrouve avec

/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  

Je suppose donc que le problème ici est que Ruby est sur la version 2.0, ce que j'ai confirmé avec Ruby --version. Le plus drôle, c'est que mes versions ont tout simplement cessé de fonctionner tout à coup, sans aucune modification de .travis.yml.
Alors, comment puis-je réellement changer les versions Ruby?

Pourrait être important de ne pas, qu'avant git clone est exécuté, j'obtiens ceci:

$ 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'.
10
One Normal Night

Vos choix semblent être soit d'utiliser

brew update
brew install whatever

ou

HOMEBREW_NO_AUTO_UPDATE=1 brew install whatever

Le conseil dans documentation travis pour ne pas faire un brew update si cela ne semble pas être nécessaire semble vous exposer à un risque de casse aléatoire lorsque l'infusion de Ruby est modifiée ...

11
jturney
  • mise à jour de brassage
  • installer brew Ruby-build
  • brew install rbenv
  • rbenv install [version_required]
  • rbenv global [version_required]
9
lexisvar

Pour les projets .NET Core: vous pouvez éviter d'utiliser brew en n'utilisant pas le .NET Core par défaut de Travis mais en l'installant à l'aide du script sh .NET core de Microsoft. J'avais l'habitude d'avoir des définitions de versions mono et dotnet qui, selon moi, n'étaient pas nécessaires après le passage au script sh. J'ai pu réparer le Homebrew must be run under Ruby 2.3! erreur en supprimant ces deux définitions (bien que j'ai ensuite dû mettre à jour libunwind8 sous Linux avant de faire l'installation du noyau .NET).

Voici le .travis.yaml complet pour exécuter le test de projet de base .NET sur osx et 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
2
yper

J'ai réussi à changer Ruby version pour Homebrew sous macOS, en créant un jeton d'accès personnel sur GitHub et en le définissant sur mon Mac comme:

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

Et puis définissez le jeton avec:

export HOMEBREW_GITHUB_API_TOKEN="your_new_token"

Si vous avez déjà cet ensemble de jetons, vous pouvez les effacer avec:

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

fonctionnement brew update avant brew install package_name

0
venna