如何使用 `extends` 和 `gitlab-runner exec`

How to use `extends` with `gitlab-runner exec`

我有一个 .gitlab-ci.yamlextends 指令,它在 gitlab-ci 上工作,但我不能用 gitlab-runner exec 测试它,它看起来像extendsgitlab-runner 忽略。

我有两个文件,例如:

# .2extend.yml
.job2extend:
  image: some/docker/img
  stage: test
  script:
    - echo do things with "${myvar}"

# .gitlab-ci.yml
include:
  - project: 'project/to/extend'
    ref: master
    file: '.2extend.yml'

myjob:
  extends: .job2extend
  variables:
    myvar: 'My Variable'

这是我遇到的错误:

$ 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

我要扩展的工作有 scriptimage 指令。

我来到了this issue,和我有同样的问题

所以,在问题没有解决的情况下,有解决办法吗?

我想这是因为项目的 .gitlab-ci.yml 文件在根级别没有脚本块(例如这样)

# .gitlab-ci.yml    
include:
  - project: 'project/to/extend'
    ref: master
    file: '.2extend.yml'

myjob:
  extends: .job2extend
  variables:
    myvar: 'My Variable'

script:
  - myjob

似乎gitlab-runner exec有一些限制,在使用这个功能之前请检查Limitations of gitlab-runner exec

如您目前所见,extends 未在 table 中列出。