はじめに
FTPソフトで直接ファイルをアップすると、どのバージョンを公開しているのかを管理しづらいので、GitHub Actionsを使って自動デプロイをできるようにします。リポジトリにpushすると、ファイルがFTPサーバーにアップロードされます。
ワークフローを定義する
プロジェクトのルートディレクトリ直下に .github/workflows/main.yml を作成し、以下のコードを記述します。
ファイル名はmain.ymlでなくても大丈夫です。
FTPアカウントとサーバーの情報は、漏洩を避けるために、GitHubのSecretsに登録したものを参照します。
on: push: branches: - mainname: 🚀 Deploy website on pushjobs: web-deploy: name: 🎉 Deploy runs-on: ubuntu-latest steps: - name: 🚚 Get latest code uses: actions/checkout@v6 - name: 📂 Sync files uses: SamKirkland/FTP-Deploy-Action@v4.4.0 with: server: ${{ secrets.FTP_SERVER }} username: ${{ secrets.FTP_USERNAME }} password: ${{ secrets.FTP_PASSWORD }} server-dir: ${{ secrets.FTP_SERVER_DIR }} local-dir: ./onでブランチを指定しているので、mainブランチにpushしたときだけデプロイされます。on: pushとだけ書くと、すべてのブランチのpushでデプロイされます。server-dirとlocal-dirに指定するディレクトリは、最後がスラッシュ(/)で終わるように指定してください。- .gitで始まるファイルやディレクトリと、node_modulesは、既定でアップロードの対象から外れます。
- アクションのバージョンは、2026年10月時点のFTP-Deploy-ActionのREADMEに合わせています。
FTPは、パスワードやファイルを暗号化せずに送ります。サーバーがFTPSに対応している場合は、withにprotocol: ftpsを足して、通信を暗号化してください。
FTPアカウントとサーバー情報を設定する
GitHubのリポジトリの[Settings]から[Secrets and variables] > [Actions]を開き、[New repository secret]をクリックします。
NameとSecretには、それぞれ以下のように設定してください。
Name | Secret |
|---|---|
| FTPサーバー |
| FTPアカウント名 |
| FTPパスワード |
| FTPのディレクトリ(最後は / で終える) |
リモートリポジトリにpushする
ここまでの設定が完了したら、GitHubのリモートリポジトリにプロジェクトをpushしてください。
GitHubで[Actions] > [All workflows]を開くと、デプロイのログなどを確認することができます。
FTP情報の確認方法
ロリポップ!
各種FTPソフトの設定方法 - ロリポップ!レンタルサーバー(新しいタブで開く)
ConoHa WING
FTPソフトを設定する|ConoHa WINGサポート(新しいタブで開く)
参考・引用
- SamKirkland/FTP-Deploy-Action - GitHub(新しいタブで開く)
- GitHub Actions でのシークレットの使用 - GitHubドキュメント(新しいタブで開く)
この記事は役に立ちましたか?