Blog

Github Actionsを使ってデプロイを自動化する。

自分用メモ、以下のサイト様の記事を参考にした。

GitHub Actions を利用した本番環境適用(デプロイ)の方法

Repository Secretsの登録

Github ActionsによりサーバーにアクセスするためのSSH情報をここに登録する。
機密情報のためyamlに直接記述せず必ずここに登録する。

なお、登録した情報は自身でも閲覧できないため、どの情報をどこから持ってきたかを覚えておく必要がある。

サーバーと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してブラウザチェックを行う等、ブランチの使い分けに注意する。