首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gitlab CI未调用“pages”作业

Gitlab CI未调用“pages”作业
EN

Stack Overflow用户
提问于 2017-05-06 22:31:29
回答 3查看 715关注 0票数 1

我在Gitlab上托管了一个项目。项目网站位于pages分支中,是一个基于jekyll的站点。

我的.gitlab-ci.yml看起来像

代码语言:javascript
复制
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作业?

EN

回答 3

Stack Overflow用户

发布于 2017-05-06 22:59:07

您可以正确地假设,only约束使作业仅在ref'sonly子句中指定的branches上运行。

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

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

票数 1
EN

Stack Overflow用户

发布于 2017-05-08 05:20:58

我会尝试几件事。首先,我将这个stages代码片段放在YML的顶部:

代码语言:javascript
复制
stages:
  - test
  - pages

这会显式地告诉CI在test阶段成功后运行pages阶段。

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

票数 0
EN

Stack Overflow用户

发布于 2017-05-09 02:31:00

补充@rex的答案:

您可以执行以下任一操作:

代码语言:javascript
复制
pages:
  script:
  - gem install jekyll
  - jekyll build -d public/
  artifacts:
    paths:
    - public

它将部署您的站点,而不考虑分支机构名称,或者:

代码语言:javascript
复制
pages:
  script:
  - gem install jekyll
  - jekyll build -d public/
  artifacts:
    paths:
    - public
  only:
  - master # or whatever branch you want to deploy Pages from

它将部署来自master的页面。

请让我知道这是否有帮助:)

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

https://stackoverflow.com/questions/43821654

复制
相关文章

相似问题

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