如何在circleCI中设置ruby版本?

时间:2018-05-14 10:49:55

标签: ruby-on-rails ruby circleci

我正在使用circleCI for 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 :(得分:3)

看起来您正在使用CircleCI 2但是您正在使用CircleCI 1方式设置ruby版本。

如此documentation中所述,要在Circle CI 2中设置ruby版本,您可以在rails应用中创建.ruby-version文件并提交文件,也可以从构建步骤:

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

答案 1 :(得分:2)

免责声明:我是CircleCI开发者倡导者

您的配置示例混合了CircleCI 2.0和1.0配置语法,这导致了问题。

如果你想在CircleCI 2.0版本中使用Ruby 2.4.4并且想要使用我们预制的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的答案将帮助您。

答案 2 :(得分:0)

我引用了这个CircleCI docs并创建了一个文件.ruby-version,明确说明了要使用的版本,即2.4.4,它可以工作。内容是

2.4.4