Как использовать SFTP с помощью действий Github?

#github #sftp #github-actions

#github #sftp #github-действия

Вопрос:

Я хочу использовать Github actions для передачи файлов на удаленный сервер через SFTP (единственный вариант для этого сервера), когда я нажимаю на Github.

Я использую это действие https://github.com/marketplace/actions/ftp-deploy

Я создал файл в своем репозитории в .github/workflows/main.yml и добавил:

 on: push
name: Publish Website
jobs:
  FTP-Deploy-Action:
    name: FTP-Deploy-Action
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2.1.0
      with:
        fetch-depth: 2
    - name: FTP-Deploy-Action
      uses: SamKirkland/FTP-Deploy-Action@3.1.1
      with:
        ftp-server: ${{ secrets.FTP_SERVER }}
        ftp-username: ${{ secrets.FTP_USERNAME }}
        ftp-password: ${{ secrets.FTP_PASSWORD }}
  

Я создал секрет для этого репозитория, который содержит следующее:

 FTP_SERVER: sftp.server.com, FTP_USERNAME: user, FTP_PASSWORD: password
  

Я вижу действие, запущенное в Github, но оно выдает ошибку в FTP-Deploy-Action задаче.

## [ошибка] Требуется ввод и не предоставляется: ftp-сервер

Это секретно и работает с Filezilla.

Кто-нибудь знает, если я настроил это неправильно?

Комментарии:

1. Можете ли вы попробовать использовать необработанный URL-адрес сервера, имя пользователя и пароль (вместо секретов), чтобы посмотреть, исчезнет ли ошибка? Одной из распространенных проблем с SFTP через действие github является запрос на принятие сертификата сервера. Вы можете обойти это с помощью git-ftp-args: --insecure

2. Да, @manishg жестко закодировал значения. Интересно, почему Secrets не

3. Есть какие-либо подсказки в вашем журнале действий?

4. Пожалуйста, обратите внимание, что поддержка sftp была удалена с версией 4.0. Подробнее см. Примечания к выпуску SamKirkland / FTP-Deploy-Action

Ответ №1:

Я смог заставить его работать в моем собственном репозитории. Я думаю, что проблема может быть в том, как были настроены ваши секреты. Эта ошибка обычно появляется, когда требуемые параметры действия github не были предоставлены, поэтому любопытно, отличаются ли ключи или они были сохранены как пустые. Я бы удалил FTP_SERVER secret и создал его снова, чтобы быть уверенным.

Успешный запуск рабочего процесса

Рабочий код

   - name: FTP-Deploy-Action
    uses: SamKirkland/FTP-Deploy-Action@3.1.1
    with:
      ftp-server: ${{ secrets.FTP_SERVER }}
      ftp-username: ${{ secrets.FTP_USERNAME }}
      ftp-password: ${{ secrets.FTP_PASSWORD }}
      local-dir: toupload
  

ОБНОВЛЕНИЕ: Добавлен пример для каждого комментария, оставленного ниже,

Пример секретного создания для справки. В основном создайте секрет для каждой записи, а не разделенный запятыми сгруппированный секрет

введите описание изображения здесь

Источник: https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets

Комментарии:

1. Очень странно. Просто любопытно: как настроены ваши секреты? Разделены ли запятые, как у меня выше? В новых строках?

2. Это один секрет на запись. Это означает, что секретное имя — FTP_SERVER, а значение, использующее ваш пример, будет sftp.server.com Затем повторите то же самое с двумя другими секретами. Я обновил приведенный выше ответ, чтобы вы могли видеть секрет, созданный для FTP_SERVER

3. Ооо! Я думал, что это набор пар ключей и значений! Спасибо!

4. Я получаю сообщение об ошибке: процесс ‘/ usr / bin / git’ завершился с кодом выхода 5 с SamKirkland/FTP-Deploy-Action@3.1.1 и те же ключи, которые вы предоставили? Могу ли я что-нибудь с этим сделать?

5. @realarb разместите git-ftp-аргументы: —небезопасно за параметром ftp-пароля в вас. yml-файл