我正在尝试使用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
谢谢!
答案 0 :(得分:1)
如果您的gitlab运行程序是自定义Windows计算机,则manually install lftp
。然后命令将在您的管道中可用。
在流道上安装lftp
后,只需从管道中删除
- echo "*****Install lftp*****"
- apt-get update -qq && apt-get install -y -qq lftp