Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gitlab CI不调用';第'页;工作_Gitlab_Gitlab Ci_Gitlab Ci Runner - Fatal编程技术网

Gitlab CI不调用';第'页;工作

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

我在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/

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如果您想查看,请在此处记录。希望有帮助:)我找到了,我找到了,谢谢!现在了解如何美化我们的R
pkgdown
website:)@MSBerends酷!很高兴你把它整理好了!:)您可以查看这些示例项目,并了解gitlab ci是如何配置的,以帮助您针对您的用例执行此操作:)实际有效的是,我必须将.gitlab-ci.yml推送到页面分支本身,而不是主分支。文档记录得很差,没有明确告诉您要这样做。