Github actions rails commands "/bin/ruby: invalid option -: (-h will show valid options) (Runti
Posted
技术标签:
【中文标题】Github actions rails commands "/bin/ruby: invalid option -: (-h will show valid options) (RuntimeError)"【英文标题】: 【发布时间】:2020-10-29 09:19:31 【问题描述】:我正在尝试实现 Github Actions 但无法运行 rails 命令。
在 github 工作流中运行 bundle exec rake
或 bundle exec rails db:create
时引发错误。
Run bundle exec rake rails db:setup
bundle exec rake rails db:setup
shell: /bin/bash -e 0
env:
PATH: /home/runner/.rubies/ruby-2.6.5/bin:/usr/share/rust/.cargo/bin:/home/runner/.config/composer/vendor/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin
RAILS_ENV: test
POSTGRES_HOST: localhost
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_PORT: 5432
RUBYOPT: -W:no-deprecated -W:no-experimental
/home/runner/.rubies/ruby-2.6.5/bin/ruby: invalid option -: (-h will show valid options) (RuntimeError)
##[error]Process completed with exit code 1.
这是我的 ruby.yml 文件:
name: Ruby
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
test:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:11
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- "5432:5432"
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.5
- name: Install library for postgres
run: sudo apt-get install libpq-dev
- name: Install dependencies
run: bundle install
- name: Setup Database
run: bundle exec rake rails db:setup
env:
RAILS_ENV: test
POSTGRES_HOST: localhost
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_PORT: 5432
RUBYOPT: "-W:no-deprecated -W:no-experimental"
- name: Run tests
env:
RAILS_ENV: test
POSTGRES_HOST: localhost
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_PORT: 5432
RUBYOPT: "-W:no-deprecated -W:no-experimental"
run: bundle exec rake
- name: Ensure that assets compile correctly
run: bundle exec rails assets:precompile
谢谢大家!
【问题讨论】:
尝试 127.0.0.1 而不是 localhost @ChakreshwarSharma 我尝试使用它而不是 localhost 并引发相同的错误。感谢您的回复。 【参考方案1】:RUBYOPT='-W:no-deprecated
不适用于 Ruby 版本
改变
ruby-version: 2.6.5
到
ruby-version: 2.7.0
【讨论】:
不错的建议,我现在就试试。希望新版本不会破坏任何其他代码 LOL。谢谢 谢谢!在我的.bashrc
中有这个设置(可能是为了在使用一些 2.7 后的 ruby 版本时抑制以前的一些弃用警告),评论它让 ruby 再次工作【参考方案2】:
我不知道这是否能给你任何帮助。但是,您可以根据我的发现尝试做我所做的。
转到应用的根目录。运行pwd
命令,查看路径中是否有空格。根据您的问题,它可能在:
char 之前有一个空格。
我重命名了包含空格的文件夹名称,一切正常
希望对你有帮助
【讨论】:
以上是关于Github actions rails commands "/bin/ruby: invalid option -: (-h will show valid options) (Runti的主要内容,如果未能解决你的问题,请参考以下文章
@mentions for Users with ActionText in Rails6; Rails6.1更新。
Rails 方法返回当前的“controller#action”?
Rails 4:before_filter 与 before_action
什么相当于 rails 7 中的 `Rails.config.action_view.raise_on_missing_translations`?