更新日
公開日
WordPress プラグインのリリース自動化|10up GitHub Actions で SVN 不要の効率的な更新フロー構築
WordPress のプラグインを効率的に公開・配布するためには、 WordPress.org へのプラグイン公開とアップロードが欠かせません。DigitalCube でも、 Amimoto でご利用頂く機能をC3 Cloudfront Cache ControllerプラグインやAMIMOTO Plugin Dashboardプラグインとして公開しています。
この記事では、WordPress プラグインを WordPress.org にリリースする作業を効率化・自動化するための GitHub Actions をご紹介します。SVN コマンドを利用することなく、また、テストやビルドが成功した時などの特定条件でのみリリースできる仕組みを構築するためにも、ぜひこの GitHub Actions の導入をご検討ください。
WordPress プラグインを WordPress.org に公開するメリット
WordPress の機能を拡張するプラグイン、顧客向けに個別開発したものだけでなく、様々な目的で多くの開発者が WordPress.org にプラグインを公開しています。これは自社プロダクトのプロモーションや有料機能を販売するためだけでなく、多くの案件で実装・採用することの多い機能を効率的に配布するためにも行われています。
WordPress.org にプラグインを公開することで、ユーザーは必要な拡張機能を WordPress 管理画面から1クリックでインストールできます。また、アップデートについても管理画面から1クリックで実施できるため、クライアントに納品した後の複数のサイトに対して脆弱性対応や PHP 最新版への対応などの変更を提供する場合にも、WordPress.org へのプラグインリリースと顧客へのアップグレードの案内のみで完了します。
WordPress.orgへの公開には、SVNの知識が必要
WordPress プラグインをWordPress.org に公開、リリースする際の問題の1つが SVN です。Git を利用したバージョン管理や開発フローに慣れた開発者にとって、プラグインの公開作業でのみ異なるバージョン管理ツールを利用するのは、思わぬミスや手順を思い出すための時間ロスなどにつながります。
また、個人が手動で行うリリース体制は、作業ミスの誘発やリリースタイミングの調整などでよりリリースが複雑になる可能性があります。
これらの問題を解決するのが、GitHub Actions を使った自動化です。
2つの GitHub Actions の紹介
10up が提供する WordPress 向け GitHub Actions は2種類あります。
まず一つ目が WordPress Plugin Deploy Action です。

これは新バージョンリリース時の完全自動デプロイを行います。GitHub でタグを作成した時にトリガーされ、プラグインの新バージョンを WordPress.org に自動デプロイしてくれます。機能追加、バグ修正、メジャーアップデートなどが対象となります。
二つ目は WordPress Plugin Asset Update Action で、readme やアセット更新の自動同期を担当します。指定ブランチへの push でトリガーされ、readme ファイルや画像アセットのみを WordPress.org に更新します。説明文修正、スクリーンショット更新、対応バージョン変更などに活用できるでしょう。
セットアップ方法
必要な準備
まず WordPress.org の SVN 認証情報(SVN ユーザー名と SVN パスワード)を用意してください。作成方法は、WordPress ハンドブックの記事を Google 翻訳などでチェックすることをお勧めします。
次に GitHub Secrets の設定を行います。リポジトリの Settings > Secrets で以下を設定してください。
SVN_USERNAME
: あなたのSVNユーザー名SVN_PASSWORD
: あなたのSVNパスワード
プラグインデプロイ用ワークフロー
.github/workflows/deploy.yml
を作成します。
name: Deploy to WordPress.org
on:
push:
tags:
- "*"
jobs:
tag:
name: New tag
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: WordPress Plugin Deploy
uses: 10up/action-wordpress-plugin-deploy@stable
env:
SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
このアクションを追加すると、git tag v1.2.0 && git push origin v1.2.0 のようにタグを作成 push することで、GitHub Actions が WordPress.org に自動デプロイしてくれます。
アセット更新用ワークフロー
README.txtやスクリーンショットなどを更新するだけのワークフローも作れます。.github/workflows/assets-update.yml
を作成しましょう。
name: Plugin asset/readme update
on:
push:
branches:
- master
jobs:
master:
name: Push to master
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: WordPress.org plugin asset/readme update
uses: 10up/action-wordpress-plugin-asset-update@stable
env:
SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
readme.txt や .wordpress-org/ 内の画像を編集した後、git push origin master で master に push してください。GitHub Actions が WordPress.org に自動同期を行います。
ファイル構成のベストプラクティス
プロジェクト構成は以下のようになります。ポイントとなるのは、.wordpress-org
ディレクトリです。このディレクトリに、プラグインのバナーやアイコンなどの情報を追加することで、GitHub Actionsを利用したデプロイや更新が可能となります。
your-plugin/
├── your-plugin.php # メインファイル
├── readme.txt # WordPress.org 用 readme
├── .distignore # デプロイ除外ファイル指定
├── .wordpress-org/ # WordPress.org 専用アセット
│ ├── banner-1544x500.png # プラグインバナー
│ ├── icon-128x128.png # アイコン
│ └── screenshot-1.png # スクリーンショット
├── .github/
│ └── workflows/
│ ├── deploy.yml # リリース用
│ └── assets-update.yml # アセット更新用
└── src/ # 開発用ファイル
.distignore の活用
WordPress.org にアップロードしたくないファイルは .distignore で指定できます。
/.git
/.github
/node_modules
/src
/tests
.distignore
.gitignore
package.json
webpack.config.js
まとめ
WordPress を利用したサイトの制作や運用保守において、プラグインをどのように開発し、顧客に提供・配布するかは重要な課題です。WordPress.org でのプラグイン公開・配布は多くのクライアントやサービスのユーザーに対して効率的に機能とアップデートを提供することができる手段と言えるでしょう。
しかし一方で使い慣れない SVN の操作や、手動で Git リポジトリの情報を SVN に移すなどの作業は、思わぬミスや作業時間のロスを生み、そこからトラブルにつながる可能性もあります。
今回紹介した 10up の GitHub Actions を活用し、安全かつストレスのないリリースフローを構築しましょう。
参考リンク
- 10up/action-wordpress-plugin-deploy
- 10up/action-wordpress-plugin-asset-update
- GitHub Actions Documentation
あなたの WordPress を最適な設定で運用する方法を提案します!
今回ご紹介した内容を社内で提案・実装する際、専門知識がないと難しいと感じることもあるかもしれません。DigitalCube の提供する LabWorksでは、AWS などを活用した WordPress サイトの柔軟なカスタマイズや安定運用をサポートする様々なサービスを提供しています。
ウェブメディアに特化した提案や事例も複数ございます。開発や運用の支援を依頼する企業をお探しの場合は、ぜひ DigitalCube の LabWorks をご検討ください。
当社へご興味をお持ちいただきありがとうございます。
「こんなことやってみたい!」と、ぜひ気軽にご相談ください。
担当者よりご連絡差し上げます。