【发布时间】:2020-03-26 18:10:48
【问题描述】:
我有一个 Ruby 脚本,我想在创建拉取请求时运行它。此拉取请求验证一系列条件以确保拉取请求可以合并。这是一个非常简单的脚本,没有外部 gem,只有标准的 Ruby。
我正在尝试在运行步骤的作业上运行此脚本。问题是,我不确定应该保存文件的路径。
脚本被称为:validator.rb。在我的本地计算机上,我可以使用以下命令运行脚本:
ruby -r ./validator.rb -e "Validator.new.validate_something 'One parameter'"
这在本地运行良好,但是当我将其推送到 GitHub 时它失败了。我将脚本保存为 .github/workflows/ruby-scripts,所以我的工作如下所示:
jobs:
title:
name: "Title"
runs-on: ubuntu-latest
steps:
- run: ruby -r ./ruby-scripts/validator.rb -e "Validator.new.validate_something '${{ github.event.pull_request.title}}'"
我得到:
Run ruby -r ./ruby-scripts/validator.rb -e "Validator.new.validate 'Create README.md'"
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:29: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:30: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/local/lib/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- ./ruby-scripts/validator.rb (LoadError)
from /usr/local/lib/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:92:in `require'
##[error]Process completed with exit code 1.
我尝试了所有可能的路径组合,但每次都失败。
运行 pwd 和 ls 返回:
- run: pwd => /home/runner/work/repo-name/repo-name
- run: ls => shell: /bin/bash -e {0}
这样做的正确方法是什么?
【问题讨论】:
-
- run: ruby -r ruby-scripts/validator.rb -e也没用? -
嗨@AlexGolubenko,感谢您的帮助。它也没有用。我想我测试了所有可能的组合,但什么也没有。
-
你能得到脚本来打印
ls并找出目录中的内容吗?权限也可能是相关的,Ruby 有时不善于报告错误。 -
@simonwo 用运行结果编辑了问题,我也运行了一个密码
-
这是因为你没有检查你的回购。默认情况下,除非您使用 Checkout GitHub Action 签出代码,否则不会签出您的存储库。
标签: ruby github-actions