GithubアクションでSFTPする方法は?

Sep 02 2020

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で機能します。

私がこれを間違って設定したかどうか誰かが知っていますか?

回答

2 EdwardRomero Sep 02 2020 at 12:10

私はそれを自分のリポジトリで動作させることができました。問題はおそらくあなたの秘密がどのように設定されたかにあると思います。このエラーは通常、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