Gitlab CI没有调用'页面'工作

时间:2017-05-06 14:31:29

标签: gitlab gitlab-ci gitlab-ci-runner

我有一个在Gitlab上托管的项目。项目网站位于pages分支内,是基于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没有调用此作业,因为only指定pages分支。然后我尝试推进pages分支,但无济于事。

如何触发pages工作?

3 个答案:

答案 0 :(得分:1)

您可以假设only约束使作业仅在ref's子句中指定的branchesonly上运行。

请参阅https://docs.gitlab.com/ce/ci/yaml/README.html#only-and-except

可能存在冲突,因为分支和作业具有相同的名称。您是否可以尝试将作业重命名为不同的测试目标?

答案 1 :(得分:0)

我会尝试一些事情。 首先,我将这个stages代码段放在YML的顶部:

stages:
  - test
  - pages

这明确告诉CI在pages阶段成功后运行test阶段。

如果这不起作用,那么,我会移除only标记,看看会发生什么。

答案 2 :(得分:0)

补充@rex回答:

你可以这样做:

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

将从master部署页面。

请告诉我这是否有帮助:)