Лучший способ загрузить основную ветку Github в SFTP - PullRequest
0 голосов
/ 17 апреля 2019

Как лучше всего включить конвейер, который загружает код главной ветки GitHub на SFTP-сервер?У меня есть (PHP) файлы в основной ветке, которые нужно синхронизировать с SFTP (производственным) сервером.

Я пробовал Travis CI с git-ftp , но это не работаетпоскольку cURL не поддерживает sftp, только ftp.

Я также пробовал это руководство , но также использует cURL, который не будет работать, поскольку он не поддерживает sftp.

Существуют ли какие-либо программы (альтернативы Travis CI), которые я могу использовать или я должен придерживаться Travis CI и попробовать что-то еще?

1 Ответ

0 голосов
/ 21 апреля 2019

Есть несколько способов справиться с этим.

Во-первых, многие версии curl действительно поддерживают SFTP;это вопрос использования соответствующей версии.Debian и Ubuntu предоставляют curl двоичные файлы, которые можно использовать для загрузки с использованием SFTP, либо с именем пользователя и паролем, либо с ключом.

Во-вторых, вы можете использовать такую ​​программу, как lftp, которая может быть написана с помощью сценариев и можеттакже может использоваться для загрузки на удаленный сервер с использованием SFTP, либо с именем пользователя и паролем, либо с ключом.Этот двоичный файл также доступен в Debian и Ubuntu.

В-третьих, вы можете использовать программу командной строки sftp из OpenSSH.Однако, поскольку OpenSSH всегда запрашивает имя пользователя и пароль для /dev/tty, не позволяя использовать его в сценарии, вам необходимо либо использовать для этой цели ключи SSH, либо использовать что-то вроде expect, которое может сценарий взаимодействия спрограмма sftp и TTY для ввода данных.

Если вы выполняете сборку на Travis в Linux и не предоставляете надлежащие двоичные файлы, вы всегда можете выполнить сборку в подходящем Docker.контейнер вместо самой системы Travis.

...