我正在尝试为一个新的Rails项目设置一个带有Github操作的持续集成工作流。
2022-05-21T17:07:01.1242737Z Your bundle only supports platforms ["x86_64-darwin-19", "x86_64-darwin-21"] but
2022-05-21T17:07:01.1243516Z your local platform is x86_64-linux. Add the current platform to the lockfile
2022-05-21T17:07:01.1244782Z with `bundle lock --add-platform x86_64-linux` and try again.
2022-05-21T17:07:01.1294935Z Took 1.38 seconds
2022-05-21T17:07:01.1295823Z ##[endgroup]
2022-05-21T17:07:01.1347744Z ##[error]Error: The process '/opt/hostedtoolcache/Ruby/3.1.2/x64/bin/bundle' failed with exit code 16
at ExecState._setResult (/home/runner/work/_actions/ruby/setup-ruby/v1/dist/index.js:4918:25)
at ExecState.CheckComplete (/home/runner/work/_actions/ruby/setup-ruby/v1/dist/index.js:4901:18)
at ChildProcess.<anonymous> (/home/runner/work/_actions/ruby/setup-ruby/v1/dist/index.js:4795:27)
at ChildProcess.emit (node:events:390:28)
at maybeClose (node:internal/child_process:1064:16)
at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
和配置文件:
name: My workflow
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- run: bundle exec rake
有人知道问题出在哪吗?
非常感谢!
3条答案
按热度按时间kgsdhlau1#
[问题已解决]
解决方案:
运行
bundle lock --add-platform x86_64-linux
db2dz4w82#
杰拉德·莫雷拉提供的答案对我来说很有效;然而,我花了一段时间才意识到我需要通过PowerShell/命令行从项目内部运行
bundle lock --add-platform x86_64-linux
(就我而言,这是一个Jekyll项目/站点)。强调一下这个问题出现在我的案例中的原因可能也是有帮助的,因为我在Windows 10上捆绑了网站,而Linux驱动的机器处理了部署(由GitHub工作流触发/控制)。
stszievb3#
靶病变; DR
在项目中本地运行此命令并提交更改
考虑下面的Github操作配置:
配置声明了
ubuntu-latest
平台映像,用于在Github Actions上运行作业。Github Actions使用x86_64-linux
平台for ubuntu。但是,Gemfile.lock
缺少该平台,导致退出代码16。在本地运行以下命令会将
x86_64-linux
平台添加到Gemfile.lock
:运行该命令后,最终的
Gemfile.lock
类似于下图:x86_64-linux
现在被添加到Gemfile.lock
中的PLATFORMS
列表下,因此它将在Github Actions的ubuntu映像上正确运行。