W

WordPressのオリジナルテーマをデプロイ

公開: 2025年07月27日 18時19分
更新: 2025年07月27日 18時25分

WordPress のオリジナルテーマを GitHUB Action を使ってデプロイするコードの紹介です。

弊社では、テーマディレクトリだけを開発環境において、デプロイもそれだけを本番サーバーに移行する方法をとっています。

純粋にオリジナルのテーマディレクトリだけを Git のバージョン管理下におけば、本番サーバーにSSH接続して'git pull'するだけでデプロイになる方法もお勧めですが、TailwindCSS のコンパイルや、ローカル開発環境でホットリロードさせたい場合の環境を組んだ場合はそう単純に収まりませんので、やはり GitHUB Action での自動化は便利です。

今回のデプロイコードはミニマム設計のものなので、他のタイプが欲しい方はご要望ください。

プロジェクト構造

.git/
.github/
├── workflows/               
    ├── deploy.yml
original-theme/
├── img/
├── main.js
├── style.css
├── functions.php
├── header.php
├── footer.php
├── index.php
├── single.php
├── category.php
├── archive.php
├── search.php
├── page.php
├── comments.php
├── sidebar.php

GitHUB Action用の .github/workflows/deploy.yml

name: Deploy to Production

on:
  workflow_dispatch: # 手動で実行するためのトリガー

jobs:
  deploy:
    runs-on: ubuntu-latest # 本番サーバーへデプロイするための仮想環境をUbuntuに設定する
    
    steps:
    - name: Checkout code # 仮想環境にリポジトリをクローンする
      uses: actions/checkout@v4
      
    - name: Setup SSH key # SSHキーを設定する
      run: |
        mkdir -p ~/.ssh
        echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
        chmod 600 ~/.ssh/id_rsa
        ssh-keyscan -H ${{ secrets.PRODUCTION_HOST }} >> ~/.ssh/known_hosts
        
    - name: Deploy theme to production # 本番サーバーにrsyncでデプロイする
      run: |
        rsync -avz --delete \
          -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \
          --exclude='.git*' \
          --exclude='.git*' \
          original-theme/ \
          ${{ secrets.SSH_USER }}@${{ secrets.PRODUCTION_HOST }}:${{ secrets.PRODUCTION_PATH }}/themes/original-theme/
          
    - name: Set correct permissions on production # ファイルの所有権とグループが崩れるのでwww-dataに変更する
      run: |
        ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
          ${{ secrets.SSH_USER }}@${{ secrets.PRODUCTION_HOST }} \
          "chown -R www-data:www-data ${{ secrets.PRODUCTION_PATH }}/themes/original-theme && \
           find ${{ secrets.PRODUCTION_PATH }}/themes/original-theme -type f -exec chmod 644 {} \; && \
           find ${{ secrets.PRODUCTION_PATH }}/themes/original-theme -type d -exec chmod 755 {} \;"
           
    - name: Notify deployment completion # デプロイが完了したことを通知する
      run: |
        echo "✅ Deployment completed successfully!"
        echo "Theme deployed to: ${{ secrets.PRODUCTION_HOST }}"
        echo "Build artifacts created and synced to production server"
公開: 2025年07月27日 18時19分
更新: 2025年07月27日 18時25分

コメントや質問をする

メールアドレスが公開されることはありません。