![](/img/trans.png)
[英]How to make a simple GitLab Ci/CD gitlab-ci.yml file to build an Angular project?
[英]How can I use different script in .gitlab-ci.yml depending on pushed branched
我在gitlab-ci.yml
文件中有以下设置用于构建
build_app:
image: node:10
stage: build
artifacts:
expire_in: 5 minute
paths:
- ./dist
script:
# - mkdir app
# - cp package*.json ./app
- npm ci
# - COPY . . ???
- npm run build --prod
如您所见,我的构建始终带有--prod
标志,当我在测试服务器上进行测试时,它也以prod
数据开头
当我推送到master
分支时,如何制作脚本以使用ng build --prod
和推送到dev
分支时的ng build --configuration=stage
?
每个存储库只有一个 yaml 文件。 但是您可以仅使用关键字来定义脚本的哪个部分在哪个分支上运行(有关更多详细信息,请参阅文档)。 这应该是这样的:
部署主:
阶段:-构建
构建:阶段:构建脚本:-“这里是您的命令”仅:-主
部署开发:
阶段:-构建
构建:阶段:构建脚本:-“这里是您的命令”仅:-开发
只需编写一个 shell 脚本来检查导致 ci/cd 运行的当前分支:
- case "$CI_COMMIT_BRANCH" in
"master") ng build --prod; ;;
"dev") ng build --configuration=stage; ;;
esac
或者使用简单的 if else 可能更具可读性:
- if [ "$CI_COMMIT_BRANCH" = "master" ]; then
ng build --prod;
elif [ "$CI_COMMIT_BRANCH" = "dev" ]; then
ng build --configuration=stage;
fi
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.