FTP发送程序包发布DotNet Framework GitLab-ci-yml

时间:2020-03-17 01:45:35

标签: gitlab gitlab-ci gitlab-ci-runner

我正在尝试使用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

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您的gitlab运行程序是自定义Windows计算机,则manually install lftp。然后命令将在您的管道中可用。

在流道上安装lftp后,只需从管道中删除

    - echo "*****Install lftp*****"
    - apt-get update -qq && apt-get install -y -qq lftp