我有一个.gitlab-ci.yaml与extends指令,这对gitlab-CI工作,但我不能测试它gitlab-runner exec,它看起来像extends被忽略gitlab-runner。
我有两个文件,例如:
# .2extend.yml
.job2extend:
image: some/docker/img
stage: test
script:
- echo do things with "${myvar}"
Run Code Online (Sandbox Code Playgroud)
和
# .gitlab-ci.yml
include:
- project: 'project/to/extend'
ref: master
file: '.2extend.yml'
myjob:
extends: .job2extend
variables:
myvar: 'My Variable'
Run Code Online (Sandbox Code Playgroud)
这是我遇到的错误:
$ gitlab-runner exec docker myjob
Runtime platform arch=amd64 os=linux pid=29785 revision=45d9c1d6 version=12.4.0~beta.1935.g45d9c1d6
FATAL: missing 'script' for job
Run Code Online (Sandbox Code Playgroud)
我正在扩展的工作既有指令script又有image指令。
我遇到了这个问题,它和我有同样的问题。
那么,在问题没有解决的情况下,有没有办法做到这一点?
我正在做这样的事情:
echo 'foo_bar_baz=foo_bar_baz' | sed -r 's/_([[:alnum:]])/\U\1/g'
Run Code Online (Sandbox Code Playgroud)
并得到结果:
fooBarBaz=fooBarBaz
Run Code Online (Sandbox Code Playgroud)
有办法fooBarBaz=foo_bar_baz代替吗?
我试图做到这一点,非贪婪:
echo 'foo_bar_baz=foo_bar_baz' | sed -r 's/([^=].*?)_([[:alnum:]])/\1\U\2/g'
Run Code Online (Sandbox Code Playgroud)
但是结果是这样的:
foo_bar_baz=foo_barBaz
Run Code Online (Sandbox Code Playgroud)
我需要从中进行转换:
foo_bar_baz=foo_bar_baz
Run Code Online (Sandbox Code Playgroud)
至:
fooBarBaz=foo_bar_baz
Run Code Online (Sandbox Code Playgroud)