自分用メモ、以下のサイト様の記事を参考にした。
GitHub Actions を利用した本番環境適用(デプロイ)の方法
Repository Secretsの登録
Github ActionsによりサーバーにアクセスするためのSSH情報をここに登録する。
機密情報のためyamlに直接記述せず必ずここに登録する。
- SERVER_DEPLOY_DIR
サーバー上で管理するディレクトリの絶対パス。http://ではないので注意。レンタルサーバーのコントロールパネル等で確認するのが確実。 - SSH_HOST
サーバーのホスト名。レンタルサーバー等のコントロールパネルから確認 - SSH_PASSPHRASE
gitでリモートにpushやpullする時の自分が決めたパスワード - SSH_PORT
ポート番号。通常は22 - SSH_PRIVATE_KEY
SSHの秘密鍵 - SSH_USERNAME
レンタルサーバー等から発行されるFTPアカウント。コントロールパネルやレンタルサーバー会社からの通知で確認
なお、登録した情報は自身でも閲覧できないため、どの情報をどこから持ってきたかを覚えておく必要がある。
サーバーとgitリポジトリを接続する。
WP-CLIでサーバーのWordPressにログインし、管理ディレクトリで以下のコマンドを行う。
git init
git remote add origin <リポジトリのSSHアドレス>
YAMLを登録
githubの管理ディレクトリに.github/workflowsディレクトリを作り、workflowsディレクトリの中にmain.ymlファイルを作る。
main.ymlの記述は基本以下のもので使いまわせる。
name: Release to Production Environment
on:
push:
branches:
- main
jobs:
job1:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: ssh and deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ secrets.SSH_PORT }}
passphrase: ${{ secrets.SSH_PASSPHRASE }}
script: |
echo "Moving to the deployment directory..."
cd ${{ secrets.SERVER_DEPLOY_DIR }}
echo "Current working directory:"
pwd
# git status
# git checkout main
# git branch -a
# git remote -v
echo "Switching to main branch and pulling latest changes..."
git switch main
git pull origin main
ここまでの設定により、GitHubリポジトリとサーバーの接続とGithub Actionsによる自動化の設定が完了した。mainブランチにpushするとテスト環境にデプロイされるので、ローカル開発はdevelopmentブランチで行い、あるセクションが完成したらmainブランチにpushしてブラウザチェックを行う等、ブランチの使い分けに注意する。