我已经开始在Gitlab CI上构建.gitlab-ci.yml,因此我是通过这样的简单阶段创建的
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中发现错误:
“作业配置应至少包含一个可见的作业”
答案 0 :(得分:1)
您的yml中可能存在某种BOM表或其他无效字符,这些字符不可见。 尝试使用其他编辑器对其进行验证以进行检查。如果未找到任何内容,请尝试删除该文件,然后使用另一种方法重新创建它。
答案 1 :(得分:1)
注意: 答案不是针对这种情况的,但由于我错过了此GitLab behaviour, from the official documentation,因此可能值得一提。
(如果愿意,请编辑或评论)
我有一个主要的gitlab-ci.yaml
include
定义了模板的定义。
gitlab-ci-template
.deploy_to_cloud:
stage: deploy
script:
- echo Deployed
gitlab-ci
include: repo.url/gitlab-ci-template
stages:
- deploy
deploy:
extends: .deploy_to_cloud
复制粘贴并将所有内容合并到一个gitlab-ci.yml
文件中
gitlab-ci
stages:
- deploy_to_cloud
.deploy_to_cloud:
stage: deploy
script:
- echo Deployed
我开始得到一个
工作配置应至少包含一个可见工作
并注意不再创建任何作业;只需将一些代码移到另一个位置即可。
问题是因为我忘记重命名所有舞台定义了!
有Gitlab-CI命名规则:
舞台定义名称不能以前导点开头;否则它将被隐藏,并且该阶段不会创建任何作业!
一旦注意到linux文件的行为方式相同,便发现这很有意义。
从阶段定义名称中删除初始点使Gitlab在我的情况下再次看到了作业。
gitlab-ci
stages:
- deploy_to_cloud
deploy_to_cloud: # notice the removed dot at the beginning
stage: deploy
script:
- echo Deployed
答案 2 :(得分:0)