我在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作业?
发布于 2017-05-06 22:59:07
您可以正确地假设,only约束使作业仅在ref's或only子句中指定的branches上运行。
请参阅https://docs.gitlab.com/ce/ci/yaml/README.html#only-and-except
可能存在冲突,因为分支和作业具有相同的名称。您是否可以尝试将作业重命名为不同的名称以进行测试?
发布于 2017-05-08 05:20:58
我会尝试几件事。首先,我将这个stages代码片段放在YML的顶部:
stages:
- test
- pages这会显式地告诉CI在test阶段成功后运行pages阶段。
如果这不起作用,那么我将删除only标记,看看会发生什么。
发布于 2017-05-09 02:31:00
补充@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的页面。
请让我知道这是否有帮助:)
https://stackoverflow.com/questions/43821654
复制相似问题