..
GitHubからFTPを使って自動デプロイ
静的サイトジェネレーター(Jekyll)で生成したサイトを、レンタルサーバー(さくらのレンタルサーバー)へ自動デプロイしている。生成そのものは確認も兼ねてローカルで実行しており、自動化するのはデプロイ作業のみである。 その手順を記録しておく。
以下のサイトの手順通りで、大丈夫だった。
さくらレンタルサーバーでも自動デプロイがしたい!【GitHubActions】
1. 国外IPアドレスフィルタを無効にする
さくらインターネットの場合、デフォルトでは国外IPアドレスフィルタという設定が有効になっているので、これを無効にする。理由は、GitHubActionsからの接続が国外のIPアドレスとなるため。
2. レンタルサーバーへの接続情報を設定する
レンタルサーバーへの接続情報(FTP)をGitHubのシークレットに設定する。リポジトリに記述すれば、公開されてしまう可能性があるため。
- GitHubのリポジトリを開く
- Settings -> Secrets -> New repository secret 選択
- Nameに識別名、Valueに実際の値を入れて保存
Name | Value |
---|---|
FTP_SERVER | サーバー名 |
FTP_USERNAME | ユーザー名 |
FTP_PASSWORD | パスワード |
FTP_SERVER_DIR | ディレクトリ名 |
3. GitHub Actionsを設定する
FTP-Deploy-Actionを利用する(v4.1.0)。 設定方法はREADME.TXTにあるとおり。
- GitHubのリポジトリを開く
- Actionsを選択
- リンク set up a workflow yourself をクリック
- ymlファイル(main.yml)を書き換える
on: push
name: 🚀 Deploy website on push
jobs:
web-deploy:
name: 🎉 Deploy
runs-on: ubuntu-latest
steps:
- name: 🚚 Get latest code
uses: actions/checkout@v2
- name: 📂 Sync files
uses: SamKirkland/FTP-Deploy-Action@4.1.0
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USERNAME }}
password: ${{ secrets.FTP_PASSWORD }}
local-dir: ./_site/ ※Jekyllの場合
server-dir: ${{ secrets.FTP_SERVER_DIR }}
4. 動作確認
GitHubにpushして、反映されるかどうか確認する。GitHubのActionsに実行履歴が表示される。 これが正常に完了したことを確認し、WEBサイトの表示を確認する。
これが最初の記事だが、Actionの実行時間は30秒弱だった。