Gitlab CI不调用';第'页;工作
我在Gitlab上主持了一个项目。项目网站位于Gitlab CI不调用';第'页;工作,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,我在Gitlab上主持了一个项目。项目网站位于页面分支内,是一个基于jekyll的网站 我的.gitlab ci.yml看起来像 pages: script: - gem install jekyll - jekyll build -d public/ artifacts: paths: - public only: - pages image: node:latest cache: paths: - node_modules/ be
页面
分支内,是一个基于jekyll
的网站
我的.gitlab ci.yml
看起来像
pages:
script:
- gem install jekyll
- jekyll build -d public/
artifacts:
paths:
- public
only:
- pages
image: node:latest
cache:
paths:
- node_modules/
before_script:
- npm install -g gulp-cli
- npm install
test:
script:
- gulp test
当我将此配置文件推送到master
时,管道只执行test
作业,而不执行pages
作业。我想可能推到master
时没有调用此作业,因为只指定页面
分支。然后我试着推到页面
分支,但没有成功
如何触发页面
作业?您可以正确地假设仅
约束使作业仅在仅
子句中指定的引用
或分支
上运行
看
可能是因为分支和作业具有相同的名称而发生冲突。您可以尝试将作业重命名为不同的名称以进行测试吗?我会尝试几种方法。
首先,我把这个stages
片段放在YML的顶部:
stages:
- test
- pages
这明确告诉CI在测试
阶段成功后运行页面
阶段
如果这不起作用,那么,我会删除only
标签,看看会发生什么。补充@rex answer的:
您可以执行以下任一操作:
pages:
script:
- gem install jekyll
- jekyll build -d public/
artifacts:
paths:
- public
将部署您的站点,而不考虑分支名称,或者:
pages:
script:
- gem install jekyll
- jekyll build -d public/
artifacts:
paths:
- public
only:
- master # or whatever branch you want to deploy Pages from
它将部署主控
中的页面
请让我知道这是否有帮助:)何时执行页面作业?在每个分支上?在测试之前、之后或与测试同时运行?afair未定义阶段-页面作业仅在测试成功完成时运行。每当我推送/合并到页面分支时,它都应运行。是的,即使在测试完成后,它也没有运行。文档中说,pages
是一项“特殊”工作。这是什么意思?更改名称不会产生任何影响吗@ChiragArora您应该保留作业名页面
——这就是使用GitLab页面部署站点的原因。如果您更改作业的名称,您的站点将不会被部署。实际起作用的是,我必须将.gitlab-ci.yml推送到页面分支本身,而不是主分支。文档的文档记录得很差,没有明确告诉您要这样做。GitLab页面上有大量文档:。在使用Git时,您需要从默认分支(通常是master
)签出一个新分支。因此,每个分支将包含相同的文件,但从该分支更改的文件除外。(因此,每个分支都有一个.gitlab ci.yml
文件)=>请参阅以获取参考。但你是对的,我认为没有医生明确地这么说@MSBerends如果您想查看,请在此处记录。希望有帮助:)我找到了,我找到了,谢谢!现在了解如何美化我们的Rpkgdown
website:)@MSBerends酷!很高兴你把它整理好了!:)您可以查看这些示例项目,并了解gitlab ci是如何配置的,以帮助您针对您的用例执行此操作:)实际有效的是,我必须将.gitlab-ci.yml推送到页面分支本身,而不是主分支。文档记录得很差,没有明确告诉您要这样做。