FTP发送包发布点网框架GitLab ci yml

FTP发送包发布点网框架GitLab ci yml,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,我正在尝试使用GitLab CI/CD通过ftp发布一个aspnet mvc 5项目。 我在链接处配置了跑步者 在最后一步中,我遇到了困难,即获取生成的发布并通过ftp将其发送到另一台服务器,因为运行程序使用PowerShell执行lftp会在生成中生成错误。 你能帮助我吗? 这是我的yaml代码: variables: NUGET_PATH: 'C:\Tools\Nuget\nuget.exe' MSBUILD_PATH: 'C:\Program Files (x86)\Microso

我正在尝试使用GitLab CI/CD通过ftp发布一个aspnet mvc 5项目。 我在链接处配置了跑步者 在最后一步中,我遇到了困难,即获取生成的发布并通过ftp将其发送到另一台服务器,因为运行程序使用PowerShell执行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

谢谢

如果您的gitlab runner是自定义windows计算机,则
lftp
。然后命令将在您的管道中可用

在runner上安装
lftp
后,只需从管道中删除即可

-echo“****安装lftp*****”
-apt-get-update-qq&&apt-get-install-y-qq-lftp

出现了什么错误?+apt get update-qq&&apt get install-y-qq lftp+~~此版本中的“&&”标记不是有效的指令分隔符。+CategoryInfo:ParserError:(:)[],ParseException+FullyQualifiedErrorId:InvalidEndOfLinechanged&&to;并返回以下错误:apt get:术语“apt get”未被识别为cmdlet名称您在带有apt package manager的yaml和linux命令中定义了windows路径。似乎您混合了windows和linux配置,而不考虑运行程序中的实际操作系统。这个问题似乎是离题的。linux命令是为了说明我想做什么,但我不知道如何使用windows命令来完成。使用git命令同步git存储库自然是最好的解决方案。很高兴听到!