Travis CI загружает только пустые файлы из сценария сборки - PullRequest
0 голосов
/ 17 октября 2019

В настоящее время я пытаюсь настроить документацию для Travis CI. Сценарий сборки использует библиотеку mkdocs для генерации файлов разметки в файлы HTML. Я уже много часов пытался автоматизировать процесс развертывания с помощью Travis CI. Он должен генерировать файлы непосредственно в Travis CI и затем загружать его на FTP-сервер.

То, что я пробовал

Итак, я зафиксировал это .travis.ymlфайл в мой репозиторий Github.

language: python
python: 
  - "2.7"
env:
  global:
    #FTP_USERNAME
    - secure: "N9knL6LsuiZ....."
    #FTP_PASSWORD
    - secure: "NrRpwCeay7Y0s....."
install: 
  - pip install mkdocs
  - mkdocs --version
script:
  - mkdocs build
after_success:
  - find documentation -type f -exec curl -u "${FTP_USERNAME}:${FTP_PASSWORD}" --verbose --progress-bar --ftp-create-dirs --max-time 30 -T {} ftp://my.ftp-server.com/{} \;

Сценарий сборки mkdocs выводит сгенерированные файлы в корневую папку «документация». На самом деле этот код работает, если каталог на FTP-сервере не существует.

Что не работает

Я попробовал тот же код локально (только что выполнил команду after_success) и там он корректно загружает файлы с содержимым. Когда Travis-CI начинает загружать файлы на мой FTP-сервер, он начинается с передачи, но не заканчивается до тех пор, пока не будет сгенерировано исключение тайм-аута. Когда я проверяю файлы на сервере, он создает только пустые файлы.

Может быть, кто-то может мне помочь, почему возникает эта проблема?

1 Ответ

0 голосов
/ 17 октября 2019

Я нашел что-то интересное в Travis CI Blog . Они описывают, что протокол FTP больше не поддерживается в обычной среде Travis CI. Тот факт, что он использует разные NAT при развертывании, заставляет FTP-сервер быть неуверенным в запросах и блокирует запросы контента.

Решение

Поэтому для развертывания файлов в Travis CI необходимо использовать SFTP или VPN-подключение к вашему FTP-серверу. Но есть также много других решений CI / CD. Я лично использую сейчас Github Actions, который работает очень хорошо. Для этого есть даже модуль FTP Upload .

Это может быть причиной того, что он не загружает файлы, поскольку записывает их куда-то, где FTP-сервер уже заблокировал запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...