GithubアクションでSFTPする方法は?
Githubにプッシュアップするときに、Githubアクションを使用して、SFTP(このサーバーの唯一のオプション)を介してファイルをリモートサーバーに転送したいと思います。
私はこのアクションを使用しています 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/[email protected]
with:
fetch-depth: 2
- name: FTP-Deploy-Action
uses: SamKirkland/[email protected]
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-server
これは秘密であり、Filezillaで機能します。
私がこれを間違って設定したかどうか誰かが知っていますか?
回答
私はそれを自分のリポジトリで動作させることができました。問題はおそらくあなたの秘密がどのように設定されたかにあると思います。このエラーは通常、githubアクションに必要なパラメーターが提供されていない場合に、キーが異なるかどうか、またはキーが空として保存されているかどうかを示します。FTP_SERVER念のため、シークレットを削除して再作成します。
ワークフロー成功実行
ワークフローコード
- name: FTP-Deploy-Action
uses: SamKirkland/[email protected]
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