GitHubリポジトリを用意し、クライアントソフト「SourceTree」で複数人管理できるようになった。
だが現時点では、最新ソースをGitHubからサーバーへと都度手動で移動させる必要がある。
今回は、それを自動でサーバーに反映させるようにしたい。
FTPサーバー情報をGitHubリポジトリに設定(アカウント、PWなど)
GitHubリポジトリの「Settings」→「Secrets and variables」のActionsにて、サーバー情報を他者に見えない状態で安全に登録できる。
以下例のように設定名をつけ、実際のFTPサーバー名などを保存する。
・FTP_SERVER
・FTP_PASSWORD
・FTP_USERNAME
※上記は量産可能な個別FTPアカウントではなく、大元のFTPアカウントが必要のため、サーバーの種類に応じて調べる必要あり。
GitHubのAction機能でサーバー自動反映のプログラムを設定
GitHubリポジトリの「Action」→「New Workflow」の「set up a workflow yourself」にてAction機能用のワークフローを新規作成する。
このGitHub付属のAction機能にて、様々な外部連携やスケジュールを組むなどのカスタマイズができるらしい。
ワークフロー新規作成画面でコードが書けるようになるので、そこにサーバー連携用のコードを記載する。
コードは以下サイトを参考にさせていただいた。
がしかし、サーバーやバージョン違いからか、丸ままコピペでは動かなかったので、自分用に以下を編集した。
・SamKirkland/FTP-Deploy-Action@2.0.0 の末尾を4.1.0に変更
・「env」を「with」に変更し、with以下をこちらの別サイトを参考にして書き換え
・local-dir行を削除
・server-dirは、/xxx.co.jp/public_html/~~ (※エックスサーバーの場合)
そしてコードを保存。プッシュ時にサーバーへのソース反映が行われるようになる。
うまく反映されないなどのエラーが起きている場合は、GitHubのActionメニューで実行状態を確認し、コードを修正する必要あり。