GitHub Actionsは、ビルド、テスト、デプロイのプロセスを自動化できるサービスです。
様々な作業を自動化できるツールという感じです。
今回は、GitHub Actionsを使用して、Masterブランチにマージしたタイミングで、自動でFTP経由でレンタルサーバーにコードをデプロイする方法について説明します。
公式 GitHub Actions概要ページ
https://docs.github.com/ja/actions/learn-github-actions/understanding-github-actions
GitHub Actionsの設定
GitHub Actionsを使用してFTP経由でコードをデプロイするためには、リポジトリでActionsを有効化し、デプロイ用のワークフローファイルを設定する必要があります。
1、Actionsの有効化
リポジトリのGitHubページに移動し、画面上部のタブから「Actions」を選択します。必要に応じて、GitHub Actionsを有効化します。
2,ワークフローファイルの作成
ワークフローとは、実行する処理とその処理を実行する条件をまとめたプロセスです。
デプロイ用のワークフローを構成するYAMLファイルを作成し、適切な名前を付けます(例: deploy.yml)。
name: FTP Deploy
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: FTP Deploy
uses: SamKirkland/FTP-Deploy-Action@4.0.0
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USERNAME }}
password: ${{ secrets.FTP_PASSWORD }}
local-dir: ./dist
remote-dir: /public_html
下記で解説します。
トリガーの設定
下記記述では、デプロイが実行されるトリガーを設定しています。通常は、特定のブランチにプッシュされた際にデプロイが開始されるように設定します。
on:
push:
branches:
- main
ジョブの設定
下記の記述では、デプロイの手順を含むジョブを定義します。
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: FTP Deploy
uses: SamKirkland/FTP-Deploy-Action@4.0.0
with:
server: ${{ secrets.FTP_SERVER }}
username: ${{ secrets.FTP_USERNAME }}
password: ${{ secrets.FTP_PASSWORD }}
local-dir: ./dist
remote-dir: /public_html
FTPアクセス情報などの機密情報は、GitHubのSecretsに保存し、環境変数で取得されるように設定します。
2、FTPの接続情報の設定
secretsにFTPサーバーの接続情報を保存し、ワークフローファイル内でこれらの情報を参照します。
Settings > Secrets and variables > New repository secret をクリック
NameとValueを設定
これで、セキュリティを確保しながらFTP経由でのデプロイを行うことができます。
3、作成したワークフローをGitHub Actionsに登録
Actions > set up a workflow yourself をクリック
作成したymlファイルを記述し、コミットする
4、デプロイのテスト
ワークフローファイルの設定が完了したら、実際にコードをプッシュしてデプロイをテストします。TP経由でファイルが正常にアップロードされることを確認します。
参考
GitHub Actionsを使ってXServerなどレンタルサーバーに自動デプロイしよう
https://and-ha.com/coding/github-action-deploy/