FTP отправляет пакет publi sh Do tNet Framework GitLab-ci-yml - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь опубликовать sh как pnet mvc 5 проект через ftp, используя GitLab CI / CD. Я настроил бегун, как он есть по ссылке https://medium.com/@gabriel.faraday.barros / gitlab-ci-cd-with- net -framework-39220808b18f У меня возникли трудности на последнем этапе, который заключается в сгенерировал publi sh и отправил его на другой сервер по 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 Ответ

1 голос
/ 18 марта 2020

Если ваш gitlab runner настроен на windows машину, то установите вручную lftp. Тогда команда будет доступна в вашем конвейере.

После того, как вы установили lftp на бегун, просто удалите из конвейера

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