【问题标题】:FTP Send package publish DotNet Framework GitLab-ci-ymlFTP 发送包发布 DotNet Framework GitLab-ci-yml
【发布时间】: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


【解决方案1】:

如果您的 gitlab 运行器是自定义 windows 机器,那么 manually install lftp。然后命令将在您的管道中可用。

在运行器上安装lftp 后,只需从管道中删除

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

【讨论】:

  • 使用 git 命令同步 git 存储库的自然最佳解决方案。很高兴听到!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
相关资源
最近更新 更多