はじめに
もしあなたが、 GitHub を使って制作や開発をしていて、「更新したファイルをサーバーに毎回FTPでアップロードするのが面倒だな」と感じたことがあるなら、この記事はまさにその悩みを解決します。
私自身、同じ作業を何度も手で繰り返すのは時間がかかるし、ミスも起きやすいなと感じていました。
そこで、 GitHub Actions を使って、「GitHubに更新をプッシュしたら、自動でFTPアップロード」できるように設定する方法を、初心者の方にも分かるように順を追って説明します。
この記事はこんな人向け
- GitHubを少し使ったことがある初心者の方
- 「同じアップロード作業を何度もしたくない」と思う方
- 自動化に興味があるけれど、設定が難しそうで尻込みしていた方
前提条件(この手順で想定している環境)
以下のような環境を想定して説明しています。あなたの環境と少し違っていても、応用すれば使えます。
- GitHubリポジトリの main/master ブランチに、タグをつけてプッシュした時に動くように設定する
- サーバーのFTP接続情報(ユーザー名・パスワード・サーバー名など)を GitHub の Secrets(シークレット) に登録する
- サーバーは国内の一般的なレンタルサーバー(例: XSERVER 等)で、FTPアカウントが使える状態である
- 今回は「WordPress プラグインを開発して、更新をサーバーに反映させる」という想定(テーマや静的サイトでも同じ流れで使えます)
ステップ 1:GitHubに「Secrets」を登録しよう
まずは、FTPアップロードに必要な情報を安全にGitHubに登録します。手順は以下の通り:
- GitHubで対象のリポジトリを開きます。
- 上部の「Settings(設定)」タブをクリック。
- 左側メニューから「Secrets and variables」→「Actions」を選ぶ(表示が少し違う場合もあります)。
- 「New repository secret(新しいリポジトリシークレット)」をクリックして、以下のような項目を登録します。
例:
- FTP_PASSWORD → FTPアカウントのパスワード
- FTP_SERVER → FTPサーバー名(例:
sv1234.xserver.jp) - FTP_SERVER_DIR → アップロード先ディレクトリ(例:
/wp-content/plugins/your-plugin/) - FTP_USERNAME → FTPアカウントのユーザー名
これで、FTPの機密情報をコード中に直接書くことなく、安全に使えるようになります。
ステップ 2:ワークフロー用のYAMLファイルを作ろう
次に、GitHub Actions で自動アップロードを実行する設定ファイルを作ります。
- リポジトリのルートに
.github/workflows/というフォルダを作成。 - その中に
deploy.yml(名前は任意)などのYAMLファイルを作成。 - 以下のような内容を書き込みます(あなたの環境に合わせて「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+1exclude:によって「アップロードしたくないフォルダ/ファイル(例:node_modules等)」を除外できます。
ステップ 3:実際にプッシュして確認しよう
設定が完了したら、次の手順を試してみましょう:
- コードを修正して、GitHubにプッシュします。
- 必要に応じて「タグを付けてプッシュ」(例:
v1.0.0のような形式)を行います。 - GitHubのリポジトリ → 「Actions」タブを開いて、ワークフローが実行されているか確認。
- サーバー側をFTPやレンタルサーバーの管理画面で確認して、ファイルがアップロードされているか見てみましょう。
もし動いていなければ、YAMLの書き方やSecretsの登録、サーバーのFTP情報に誤りがないかを見直してください。たとえば、接続できない場合に「ポートが違う」「FTPの設定が必要」などが原因になることがあります。 Stack Overflow
ステップ 4:さらに使いやすく、安心して運用する
この自動アップロード機能はとても便利ですが、開発・運用環境として安心して使うためには、次のような工夫もおすすめです:
- 本番環境用とテスト環境用で別ブランチを使い、タグを付けた時だけ本番反映するようにする。
- アップロード前に「コードのテスト」「静的解析(例:PHPCS)」「ビルド」などを行い、品質を担保する。
- 大量のファイルをアップロードする場合、サーバー側の制限(タイムアウト・FTP接続数など)に注意。 Stack Overflow
おわりに
以上が、GitHubにコードをプッシュしたら自動でFTPアップロードされるように設定する 初心者向けの手順です。
少し手数はかかりますが、一度設定を済ませてしまえば、毎回手でアップロードする手間がグッと減ります。初心者の方も是非チャレンジしてみてください。
設定途中で「ここが分からない」「エラーが出る」といったことがあれば、遠慮なくご相談ください。改めて詳しくご案内できます。


コメント