我有一个具有2个不同构建阶段的GitLab管道。一个名为ci-build
的文件,它仅构建代码(.Net Web应用程序),另一个名为build-and-package-app
的文件,该应用程序将应用程序构建并打包到一个zip文件中,以供上载到其他地方。这些旨在用于不同的情况。 Ci-build
仅适用于常规分支提交,以便开发人员在分支机构工作时保持诚实。 Build-and-package-app
用于合并请求和实际部署。
我要注意的是,如果正在进行MR,则任何更改(即解决代码审查中的注释)都会启动正常的推送和MR构建。正常的推送不意识到现有的MR,因此我不能依靠规则中的CI_MERGE_REQUEST_TARGET_BRANCH_NAME
。
在这种情况下,是否可以跳过正常的推送构建?我看不到其他任何可以解决该问题的环境变量,但是我对GitLab还是很陌生,所以我可能会错过一些显而易见的内容。
ci-build:
stage: ci-build
tags:
- win2016
script:
- echo "Building MySolution.sln"
- echo "NUGET RESTORE:"
- ./Build/Lib/nuget.exe restore '.\Web Apps\MySolution.sln'
- MSBuild.exe '.\Web Apps\MySolution.sln' /t:Build /p:Configuration=Release
rules:
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "paas" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"'
when: never
- if: '$CI_COMMIT_BRANCH != "master" || $CI_COMMIT_BRANCH != "paas" || $CI_COMMIT_BRANCH != "develop"'
when: on_success