ruby-on-rails Ruby和Rails Github操作退出代码16

wribegjk  于 2023-01-22  发布在  Ruby
关注(0)|答案(3)|浏览(205)

我正在尝试为一个新的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

有人知道问题出在哪吗?
非常感谢!

kgsdhlau

kgsdhlau1#

[问题已解决]
解决方案:
运行bundle lock --add-platform x86_64-linux

db2dz4w8

db2dz4w82#

杰拉德·莫雷拉提供的答案对我来说很有效;然而,我花了一段时间才意识到我需要通过PowerShell/命令行从项目内部运行bundle lock --add-platform x86_64-linux(就我而言,这是一个Jekyll项目/站点)。
强调一下这个问题出现在我的案例中的原因可能也是有帮助的,因为我在Windows 10上捆绑了网站,而Linux驱动的机器处理了部署(由GitHub工作流触发/控制)。

stszievb

stszievb3#

靶病变; DR
在项目中本地运行此命令并提交更改

bundle lock --add-platform x86_64-linux
    • 为什么会这样**
    • Gerard MoreraWael Mohammed**的答案是正确的。以下是更多详细信息:

考虑下面的Github操作配置:

unit-test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - uses: ruby/setup-ruby@v1
      with:
        ruby-version: '3.0'
        bundler-cache: true
    - run: bundle exec rake

配置声明了ubuntu-latest平台映像,用于在Github Actions上运行作业。Github Actions使用x86_64-linux平台for ubuntu。但是,Gemfile.lock缺少该平台,导致退出代码16。
在本地运行以下命令会将x86_64-linux平台添加到Gemfile.lock

bundle lock --add-platform x86_64-linux

运行该命令后,最终的Gemfile.lock类似于下图:

...
PLATFORMS
  universal-darwin-22
  x64-mingw32
  x86_64-linux

DEPENDENCIES
  fastlane
...

x86_64-linux现在被添加到Gemfile.lock中的PLATFORMS列表下,因此它将在Github Actions的ubuntu映像上正确运行。

相关问题