Как установить версию ruby ​​в circleCI? - PullRequest
0 голосов
/ 14 мая 2018

Я использую circleCI для CI со следующим файлом .yml

version: 2
jobs:
  build:
    machine:
      ruby:
        version: 2.4.4
    steps:
      - checkout
      - run: bundle install
      - run: echo "hello"

Сообщение об ошибке

Your Ruby version is 2.3.3, but your Gemfile specified 2.4.4
Your Ruby version is 2.3.3, but your Gemfile specified 2.4.4

Мой Gemfile

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.4.4'

Как правильно установить версию ruby?

Ответы [ 3 ]

0 голосов
/ 14 мая 2018

отказ от ответственности: я адвокат разработчика CircleCI

Ваш пример конфигурации смешивает синтаксис конфигурации CircleCI 2.0 и 1.0, и это вызывает проблему.

Если вы хотите использовать Ruby 2.4.4 в сборке CircleCI 2.0 и использовать готовый образ Docker, тогда ваша конфигурация должна выглядеть следующим образом:

version: 2
jobs:
  build:
    docker:
      - image: circleci/ruby:2.4.4
    steps:
      - checkout
      - run: bundle install
      - run: echo "hello"

Приведенный выше пример относится к среде Linux. Если вы делаете сборки MacOS, то ответ @ e_a_o поможет вам в этом.

0 голосов
/ 15 мая 2018

Я сослался на это CircleCI docs и создал файл .ruby-version, в котором явно указана используемая версия, т.е. 2.4.4, и она работает.Содержание было

2.4.4

0 голосов
/ 14 мая 2018

Похоже, вы используете CircleCI 2, но вы устанавливаете версию ruby ​​CircleCI 1.

Как указано в этой документации , чтобы установить версию ruby ​​в Circle CI 2, вы можете либо создать файл .ruby-version в своем приложении rails и зафиксировать файл, либо вы можете создать его из сборки шаг:

run:
  name: Set Ruby Version
  command:  echo "ruby-2.4.4" > ~/.ruby-version
...