【发布时间】:2020-03-17 01:45:35
【问题描述】:
我正在尝试使用 GitLab CI/CD 通过 ftp 发布一个 aspnet mvc 5 项目。 我在链接https://medium.com/@gabriel.faraday.barros/gitlab-ci-cd-with-net-framework-39220808b18f 上配置了跑步者 我在最后一步遇到困难,即获取生成的发布并通过 ftp 将其发送到另一台服务器,因为运行器使用 powershel 执行,lftp 在构建中生成错误。 你能帮助我吗? 这是我的 yaml 代码:
variables:
NUGET_PATH: 'C:\Tools\Nuget\nuget.exe'
MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild.exe'
build_job:
stage: build
cache:
key: build-package
policy: push
script:
- echo "*****Nuget Restore*****"
- '& "$env:NUGET_PATH" restore'
- echo "*****Build Solution*****"
- '& "$env:MSBUILD_PATH" /p:Configuration=Release /clp:ErrorsOnly'
- '& "$env:MSBUILD_PATH" FisioSystem.MVC\FisioSystem.MVC.csproj /p:DeployOnBuild=True /p:Configuration=Release /P:PublishProfile=Publish_FisioSystems.pubxml'
- echo "*****Install lftp*****"
- apt-get update -qq && apt-get install -y -qq lftp
- echo "*****Upload file to ftp*****"
- lftp -c "set ftp:ssl-allow no; open -u $FTP_USERNAME,$FTP_PASSWORD $FTP_HOST; mirror -R C:/Deploy/ ./../manager --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/; quit"
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
when: always
paths:
- ./FisioSystem.MVC/bin/release
expire_in: 1 week
only:
- master
谢谢!
【问题讨论】:
-
你得到什么错误?
-
+ apt-get update -qq && apt-get install -y -qq lftp + ~~ 在此版本中,“&&”标记不是有效的指令分隔符。 + CategoryInfo : ParserError: (:) [], ParseException + FullyQualifiedErrorId : InvalidEndOfLine
-
将 && 改为;并返回以下错误:apt-get: The term 'apt-get' is not Recognized as a cmdlet name
-
您在 yaml 和 linux 命令中定义了 windows 路径,并使用 apt 包管理器。似乎您混合了 Windows 和 linux 配置,而不考虑跑步者中的实际操作系统。这个问题好像跑题了。
-
linux命令是为了说明我想做什么,但是我不知道我会用windows命令怎么做。
标签: gitlab gitlab-ci gitlab-ci-runner