🏗️

CircleCIのruby imageで任意のnode versionを指定したい

2022/08/08に公開

通常であればcircleci/ruby:3.0-node-browsers-legacyとかでnodeもインストールされるrubyのimageを指定すればそのときのactiveなnodeがインストールされるけど、rubyがちょっと古くてnodeもちょっと古いみたいなときに、目的のrubyとnodeのバージョンが入ったimageが存在していない時がある

そんなときはbuild stepで任意のnodeをインストールする
nvm使ってるけど何でもいいと思う

      - run:
          name: Swap node versions
          command: |
            set +e
            wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
            export NVM_DIR="$HOME/.nvm"
            [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
            [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
            nvm install v14.20
            nvm alias default 14.20

            echo 'export NVM_DIR="$HOME/.nvm"' >> $BASH_ENV
            echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> $BASH_ENV

公式のブログとフォーラムを参考にした
Nickありがとう

https://support.circleci.com/hc/en-us/articles/360051656632-Swap-node-version-on-CircleCI-convenience-image

https://discuss.circleci.com/t/setting-node-version-on-ruby-cimg/38130

Discussion