首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Gitlab CI:作业配置应至少包含一个可见作业

Gitlab CI:作业配置应至少包含一个可见作业
EN

Stack Overflow用户
提问于 2019-10-03 20:38:09
回答 3查看 9.2K关注 0票数 1

我已经开始在Gitlab CI上构建我的.gitlab-ci.yml,所以我用下面这样的简单阶段创建了它

代码语言:javascript
运行
复制
image: node:alpine

variables:
  PUBLIC_URL: /my-app

cache:
  paths:
    - node_modules

stages:
  - build
  - deploy

install_dependencies:
  stage: build
  script:
    - npm install
  artifacts:
    paths:
      - node_modules/

deploy_to_cloud:
  stage: deploy
  script:
    - echo Deployed

但作业失败并响应为:在.gitlab-ci.yml中发现错误:

“作业配置应至少包含一个可见作业”

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-03 21:00:19

您的yml中可能存在某种类型的BOM或其他不可见的无效字符。尝试使用另一个编辑器验证它,以检查这一点。如果什么也没有找到,请尝试删除该文件,然后使用另一种方法重新创建它。

票数 12
EN

Stack Overflow用户

发布于 2020-10-07 21:57:36

注意:对于这种情况,答案并不是特定的,但可能需要提一下,因为我错过了这个GitLab behaviour, from the official documentation

(如果您有,请编辑或评论)

我的案例

我有一个从模板中included定义的主gitlab-ci.yaml

gitlab-ci-template

代码语言:javascript
运行
复制
.deploy_to_cloud:
  stage: deploy
  script:
    - echo Deployed

gitlab-ci

代码语言:javascript
运行
复制
include: repo.url/gitlab-ci-template

stages:
  - deploy

deploy:
  extends: .deploy_to_cloud

问题所在

复制后-粘贴并合并到单个gitlab-ci.yml文件中

gitlab-ci

代码语言:javascript
运行
复制
stages:
  - deploy_to_cloud

.deploy_to_cloud:
  stage: deploy
  script:
    - echo Deployed

我开始得到一个

作业配置应至少包含一个可见作业

并注意到不再创建任何作业;这只是通过将一些代码移动到另一个位置。

问题是因为我忘记了重命名所有的阶段定义!

解决方案

有Gitlab-CI命名规则:

阶段定义名称不能以点开头;否则它将被隐藏,并且不会为该阶段创建作业!

一旦注意到,这是完全有意义的,因为linux文件的行为方式是相同的。

删除阶段定义名称中的起始点使Gitlab在我的示例中再次看到作业。

gitlab-ci

代码语言:javascript
运行
复制
stages:
  - deploy_to_cloud

deploy_to_cloud:   # notice the removed dot at the beginning
  stage: deploy
  script:
    - echo Deployed
票数 3
EN

Stack Overflow用户

发布于 2021-06-08 02:34:18

在我的例子中,是文件开头的一个空格。我把它删除了,现在工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58219290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档