Ruby on rails 如何在CircleCI docker映像中指定包安装(用于纱线)?
我正在使用CircleCI测试Rails应用程序。我需要让我的图像使用比我们用于CI测试的图像更高版本的纱线(当前为1.19)(Ruby on rails 如何在CircleCI docker映像中指定包安装(用于纱线)?,ruby-on-rails,yarnpkg,circleci,Ruby On Rails,Yarnpkg,Circleci,我正在使用CircleCI测试Rails应用程序。我需要让我的图像使用比我们用于CI测试的图像更高版本的纱线(当前为1.19)(circleci/ruby:2.6-node-Browser) config.yml中的配置步骤/条目是什么?我假设我必须在构建步骤中运行一些东西来升级Thread版本(图中当前版本为1.17),但我不知道它是什么。首先,我尝试通过示例中的curl命令安装Thread(从10月19日开始),该命令如下: run: name: install Yarn comma
circleci/ruby:2.6-node-Browser
)
config.yml
中的配置步骤/条目是什么?我假设我必须在构建步骤中运行一些东西来升级Thread版本(图中当前版本为1.17),但我不知道它是什么。首先,我尝试通过示例中的curl
命令安装Thread(从10月19日开始),该命令如下:
run:
name: install Yarn
command: curl -o- -L https://yarnpkg.com/install.sh | bash
这不起作用-纱线-v
仍返回1.17
我随后收到CircleCI support的回复,并将其更改为:
- run: |
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ rc main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
sudo rm /usr/local/bin/yarn && sudo ln -s /usr/bin/yarn /usr/local/bin/yarn
这起作用了。我猜这是因为
sudo
的使用正确地设置了全局路径软链接,而本地安装没有。我可以通过重置PATH
变量来达到这里,但我将其粘贴在这里,因为使用apt
路径对我来说似乎是“更好的”解决方案。您是否阅读了“是”,我不明白它指示我做什么-我想我应该添加curl
命令,但是我不知道这一行应该放在circleci/config.yml
中的什么位置。我确实意识到我可以在步骤
部分中添加安装指令作为条目,但问题是我们还有一个缓存,它依赖于warn.lock文件的校验和。这意味着缓存中仍然使用较旧版本的1.17-如果我能找出如何使缓存依赖于纱线版本,我想我已经解决了这个问题。