#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
ОБНОВЛЕНИЕ: Добавлен пример для каждого комментария, оставленного ниже,
Пример секретного создания для справки. В основном создайте секрет для каждой записи, а не разделенный запятыми сгруппированный секрет
Комментарии:
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-файл