我正在使用 GitLab CI 进行自动构建。Runner
运行在 Windows Server 2012 上,并配置为使用“shell”。
我需要构建的项目使用 Microsoft Visual Studio 开发环境(MSBuild 不支持安装程序项目。)
我可以使用命令行在 PowerShell 中构建:
$VS2017_Dev_Build = "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Professional\Common7\IDE\devenv.com"
& $VS2017_Dev_Build UTFA.sln /Project Setup_vs2017 /Rebuild Release
我将其翻译成.gitlab-ci.yml
文件:
variables:
VS2017_Dev_Build: "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Professional\Common7\IDE\devenv.com"
stages:
- build
#Purpose: Build solution
build:
stage: build
when: manual
script:
- echo building...
- & $VS2017_Dev_Build UTFA.sln /Project Setup_vs2017 /Rebuild Release
except:
- tags
'&'
GitLab 对后面第二行的符号表示不满script:
。
运行上述 PowerShell 命令行的正确语法是什么.gitlab-ci.yml
?
答案1
如果您在 YAML 验证器(独立于 GitLab 的 CI linter)中尝试此操作,您应该会看到这是一个 YAML 级别的问题。我不是 YAML 专家,但 & 符号是一个特殊字符,因此需要转义。我相信单引号或双引号在您的案例中会起作用:
- '& $VS2017_Dev_Build UTFA.sln /Project Setup_vs2017 /Rebuild Release'