我想variables:在这里使用Gitlab CI文档中记录的关键字:
来自:https://docs.gitlab.com/ce/ci/yaml/README.html
变量
此功能需要gitlab-runner版本等于或大于0.5.0.
GitLab CI允许您添加在构建环境中设置的.gitlab-ci.yml变量.变量存储在存储库中,用于存储非敏感项目配置,即.RAILS_ENV或DATABASE_URL.
Run Code Online (Sandbox Code Playgroud)variables: DATABASE_URL: "postgres://postgres@postgres/my_database"这些变量稍后可用于所有已执行的命令和脚本.
YAML定义的变量也设置为所有创建的服务容器,从而允许对它们进行微调.
当我尝试使用它时,我的版本不会运行任何阶段,并且无论如何都标记为成功,这是一个糟糕的YAML的好兆头.我将gitlab-ci.yml内容粘贴到设置区域的LINT工具中,输出错误为:
状态:语法不正确
错误:变量作业:未知参数PACKAGE_NAME
我使用的YAML语法与文档相同,但是它不起作用.我无法找到任何与此相关的漏洞.以下是我当前的版本和我的gitlab-ci.yml的清理版本.
Gitlab版本:7.13.2 Omnibus
Gitlab Runner版本:0.5.2
gitlab-ci.yml(Sanitized)
types:
- test
- build
variables:
PACKAGE_NAME: "awesome-django-app"
PACKAGE_SUMMARY: "Awesome webapp backend."
MAJOR_RELEASE: "1"
MINOR_RELEASE: "0"
PATCH_LEVEL: "0dev"
DEV_DB_URL: "db"
DEV_SERVER: "pydev.example.com"
PROD_SERVER: "pyprod.example.com"
TEST_SERVER: "pytest.example.com"
envtest:
type: test
script:
- ". ./testbuild.sh"
tags:
- python2.7
- postgres
- linux
except:
- tags
buildrpm:
type: build
script:
- mkdir -p …Run Code Online (Sandbox Code Playgroud) (请注意,这不能在 sorbet.run 上重现,据我所知,它只能用 Sorbet 的本地副本重现)
我希望我可以使用Typed Structs 功能来创建一个方法签名,其中一个参数是options散列,但这不起作用:
# typed: true
require 'sorbet-runtime'
extend T::Sig
class OptionsStruct < T::Struct
prop :x, Integer, default: 1
end
sig { params(options: OptionsStruct).void }
def method(options)
puts options.x
end
# This works
method(OptionsStruct.new({x: 2}))
# This causes the typechecker to throw.
method({x: 2})
Run Code Online (Sandbox Code Playgroud)
本质上,当您键入检查此文件时,它会抱怨在需要 Struct 时传入哈希值。我的问题是:如何为具有特定参数的哈希定义有效签名?结构在这里显然不起作用。虽然我没有尝试过 Shapes,但根据文档,它们非常有限,所以如果可能的话,我宁愿不使用它们。
关于泛型的文档提到了哈希,但似乎表明它们只能在哈希的键和值都是相同类型的情况下Hash<Symbol, String>才能使用(例如,要求所有键都是符号,所有值都是字符串),并且不提供任何方式(据我所知)用特定的键定义一个散列。
谢谢!
我是一个红宝石初学者,我正在尝试制作一个称为print的方法,该方法可以打印给定数组中的所有元素。我希望我的代码收到未定义的局部变量错误。
这就是我从Youtube得到的。这给出了未定义的局部变量错误。
movies = ["good","bad"]
def good_movies
movies.each do |movies|
puts "I like #{movie}"
end
end
good_movies
Run Code Online (Sandbox Code Playgroud)
我正在使用交互式Ruby。这是我的版本。
numbers = [1,2,3]
def print
numbers.each do |number|
puts "#{number}"
end
end
print
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:(irb):2:在`print'中:错误的参数数量(给定4,预期为0)(ArgumentError)。为什么我得到这个,而不是未定义的局部变量错误?
到底是怎么回事?