📖
github actionsを用いたFTP自動デプロイ。(例:さくらサーバー)
何について書く
git push
と同時に、さくらサーバーへ自動デプロイする仕組み
FTPしか使用できないサーバーにも自動デプロイ組めるので便利です。
内容
-
github actionsの仮想マシンからftpでデプロイしてくれるライブラリを使う
-
step1 さくらサーバー側の準備(さくらサーバーを使用しない方は飛ばしてください)
- 国外IPアドレスフィルタを無効にする
- FTPアカウント情報を確認(変更してなければさくらサーバー契約時のメール)
- デプロイ先となる公開ディレクトリのパスを確認
- 国外IPアドレスフィルタを無効にする
-
step2 githubの対象リポジトリのsettingsのsecretsを準備
- step1で確認した内容を転記するが、一番の注意点は公開ディレクトリ
- 今回の例の場合、さくらサーバーでは
~www/test
と書いてあるが、secretsに登録する FTP_SERVER_DIRには~www/test/
というようにライブラリの仕様上、最後に/
を付ける必要がある。
- 今回の例の場合、さくらサーバーでは
- step1で確認した内容を転記するが、一番の注意点は公開ディレクトリ
-
step3 githubの対象リポジトリのactionsで設定ファイルを作成
- この例の場合mainへマージ後1回actionsが実行されます。
- 初回デプロイはプロジェクトファイル全てなので、時間かかります。
- 上記書き換える内容(今回は最低限で記載。細かい設定したい場合は前述のドキュメントをご確認ください)
- この例の場合mainへマージ後1回actionsが実行されます。
name: # 名前1(※お好きな名前をつけてください)
on:
push:
branches:
- main()
jobs:
deploy:
name: # 名前2(※お好きな名前をつけてください)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Sync files
uses: SamKirkland/FTP-Deploy-Action@4.1.0 #(※21年12月31日時点最新版は4.2です)
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USERNAME }}
password: ${{ secrets.FTP_PASSWORD }}
server-dir: ${{ secrets.FTP_SERVER_DIR }}
-
step4 実行
- step3でyamlにて設定した名前1と名前2はgithub actions実行後このように見えます。
- 2回目以降のデプロイは、差分で反映するため早いです。
- step3でyamlにて設定した名前1と名前2はgithub actions実行後このように見えます。
参考サイト
Discussion