GitHubにプッシュしたら、FTPでサーバーに自動アップロードする簡単な手順

FTP
Github logo vector icon

はじめに

もしあなたが、 GitHub を使って制作や開発をしていて、「更新したファイルをサーバーに毎回FTPでアップロードするのが面倒だな」と感じたことがあるなら、この記事はまさにその悩みを解決します。
私自身、同じ作業を何度も手で繰り返すのは時間がかかるし、ミスも起きやすいなと感じていました。
そこで、 GitHub Actions を使って、「GitHubに更新をプッシュしたら、自動でFTPアップロード」できるように設定する方法を、初心者の方にも分かるように順を追って説明します。


この記事はこんな人向け

  • GitHubを少し使ったことがある初心者の方
  • 「同じアップロード作業を何度もしたくない」と思う方
  • 自動化に興味があるけれど、設定が難しそうで尻込みしていた方

前提条件(この手順で想定している環境)

以下のような環境を想定して説明しています。あなたの環境と少し違っていても、応用すれば使えます。

  • GitHubリポジトリの main/master ブランチに、タグをつけてプッシュした時に動くように設定する
  • サーバーのFTP接続情報(ユーザー名・パスワード・サーバー名など)を GitHub の Secrets(シークレット) に登録する
  • サーバーは国内の一般的なレンタルサーバー(例: XSERVER 等)で、FTPアカウントが使える状態である
  • 今回は「WordPress プラグインを開発して、更新をサーバーに反映させる」という想定(テーマや静的サイトでも同じ流れで使えます)

ステップ 1:GitHubに「Secrets」を登録しよう

まずは、FTPアップロードに必要な情報を安全にGitHubに登録します。手順は以下の通り:

  1. GitHubで対象のリポジトリを開きます。
  2. 上部の「Settings(設定)」タブをクリック。
  3. 左側メニューから「Secrets and variables」→「Actions」を選ぶ(表示が少し違う場合もあります)。
  4. 「New repository secret(新しいリポジトリシークレット)」をクリックして、以下のような項目を登録します。

例:

  • FTP_PASSWORD → FTPアカウントのパスワード
  • FTP_SERVER → FTPサーバー名(例: sv1234.xserver.jp
  • FTP_SERVER_DIR → アップロード先ディレクトリ(例: /wp-content/plugins/your-plugin/
  • FTP_USERNAME → FTPアカウントのユーザー名

これで、FTPの機密情報をコード中に直接書くことなく、安全に使えるようになります。

InMotion Hosting+1


ステップ 2:ワークフロー用のYAMLファイルを作ろう

次に、GitHub Actions で自動アップロードを実行する設定ファイルを作ります。

  1. リポジトリのルートに .github/workflows/ というフォルダを作成。
  2. その中に deploy.yml(名前は任意)などのYAMLファイルを作成。
  3. 以下のような内容を書き込みます(あなたの環境に合わせて「server」「username」などを調整してください):
name: Deploy to FTP Server

on:
  push:
    branches:
      - main
    tags:
      - '[0-9]+.[0-9]+.[0-9]*'

jobs:
  test:
    name: FTP Upload Job
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: FTP Upload Files
        uses: SamKirkland/FTP-Deploy-Action@v4.3.6
        with:
          server: ${{ secrets.FTP_SERVER }}
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          server-dir: ${{ variables.FTP_SERVER_DIR }}
          exclude: "[**/.**/**, .gitignore, **/.git/**, **/node_modules/**, **/vendor/**]"

この設定のポイント:

  • on: push の部分で「mainブランチにプッシュ」かつ「タグ付きプッシュ」の時だけ動くようにしています。
  • uses: SamKirkland/FTP-Deploy-Action@... を使ってFTPアップロード処理を行います。 GitHub+1
  • exclude: によって「アップロードしたくないフォルダ/ファイル(例:node_modules等)」を除外できます。

ステップ 3:実際にプッシュして確認しよう

設定が完了したら、次の手順を試してみましょう:

  1. コードを修正して、GitHubにプッシュします。
  2. 必要に応じて「タグを付けてプッシュ」(例: v1.0.0 のような形式)を行います。
  3. GitHubのリポジトリ → 「Actions」タブを開いて、ワークフローが実行されているか確認。
  4. サーバー側をFTPやレンタルサーバーの管理画面で確認して、ファイルがアップロードされているか見てみましょう。

もし動いていなければ、YAMLの書き方やSecretsの登録、サーバーのFTP情報に誤りがないかを見直してください。たとえば、接続できない場合に「ポートが違う」「FTPの設定が必要」などが原因になることがあります。 Stack Overflow


ステップ 4:さらに使いやすく、安心して運用する

この自動アップロード機能はとても便利ですが、開発・運用環境として安心して使うためには、次のような工夫もおすすめです:

  • 本番環境用とテスト環境用で別ブランチを使い、タグを付けた時だけ本番反映するようにする。
  • アップロード前に「コードのテスト」「静的解析(例:PHPCS)」「ビルド」などを行い、品質を担保する。
  • 大量のファイルをアップロードする場合、サーバー側の制限(タイムアウト・FTP接続数など)に注意。 Stack Overflow

おわりに

以上が、GitHubにコードをプッシュしたら自動でFTPアップロードされるように設定する 初心者向けの手順です。
少し手数はかかりますが、一度設定を済ませてしまえば、毎回手でアップロードする手間がグッと減ります。初心者の方も是非チャレンジしてみてください。

設定途中で「ここが分からない」「エラーが出る」といったことがあれば、遠慮なくご相談ください。改めて詳しくご案内できます。

\ 最新情報をチェック /

コメント

PAGE TOP
タイトルとURLをコピーしました