小编Con*_*hea的帖子

我们如何在gitlab-ci.yml中使用'variables'关键字?

我想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.

variables:   
  DATABASE_URL: "postgres://postgres@postgres/my_database"
Run Code Online (Sandbox Code Playgroud)

这些变量稍后可用于所有已执行的命令和脚本.

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)

variables gitlab gitlab-ci

24
推荐指数
2
解决办法
3万
查看次数

如何在 Sorbet 中为具有属性的散列定义签名?

(请注意,这不能在 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>才能使用(例如,要求所有键都是符号,所有值都是字符串),并且不提供任何方式(据我所知)用特定的键定义一个散列。

谢谢!

ruby sorbet

2
推荐指数
1
解决办法
1323
查看次数

Ruby错误:参数数量错误(给定4个,预期为0)(ArgumentError)

我是一个红宝石初学者,我正在尝试制作一个称为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)。为什么我得到这个,而不是未定义的局部变量错误?

到底是怎么回事?

ruby

1
推荐指数
1
解决办法
1376
查看次数

标签 统计

ruby ×2

gitlab ×1

gitlab-ci ×1

sorbet ×1

variables ×1