我有一个在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
工作?
答案 0 :(得分:1)
您可以假设only
约束使作业仅在ref's
子句中指定的branches
或only
上运行。
请参阅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
部署页面。
请告诉我这是否有帮助:)