GitHub ActionsでWordPressのプラグインをGitHubのリポジトリからWordPress.orgのプラグインリポジトリにデプロイする。

10upさんがGitHubのリポジトリからWordPress.orgのプラグインリポジトリにデプロイするGitHub Actionsを公開してくれたので、試してみました。

前提条件として

  • WordPressプラグインリポジトリに登録済み
  • GitHubにリポジトリを持っている

が必要です。

ステップバイステップで簡単に説明すると、

以下では簡単にステップを紹介します。詳しくはGitHub Actionsや10upさんのリポジトリの説明を読んでください。

  1. 開発環境のgitのマスターブランチに「.wordpress-org」ディレクトリ(これは設定で変更可能ですが、このワークフローのデフォルトに従います)を作り、SVNのassetsディレクトリの中身をそこにコピーします。
# WordPress プラグインのSVNリポジトリ構成の例
.
├── assets/
│   ├── icon-256x256.png
│   ├── icon.svg
│   └── screenshot-1.png
├── branches/
├── tags/
└── trunk/
# gitのディレクトリ構成の例
.
├── .git/
├── .github/
├── .gitignore
├── .wordpress-org/
│   ├── icon-256x256.png
│   ├── icon.svg
│   └── screenshot-1.png
├── README.md
├── css/
├── languages/
├── readme.txt
├── sass/
├── show-current-template.php
└── show-current-template.pot
  1. GitHubのリポジトリを開きます
  2. 「Actions」をクリックします
  1. 「Set up a workflow yourself」をクリックします
  1. ワークフローの.ymlファイル名の欄にフォーカスがあたってページが開きます。あとから分かりやすいように適当なものに変更したほうがいいでしょう
  1. 10up/action-wordpress-plugin-deployを開き、ここの説明にあるExample Codeをコピーします。
  2. 先ほど開いた自分のワークフローのページを開いてエディター部分にExample Codeをペーストします。

npmでビルドする必要がなければハイライトしている以下の部分は必要ないので削除します。

    - name: Build
      run: |
        npm install
        npm run build

スラッグの指定もリポジトリ名と同一であれば必要ないので、削除します。

        SLUG: my-super-cool-plugin
  1. 右の方にある「Start commit」をクリックし、コミットタイトル、コミット内容を適当に入力し、「Commit new file」をクリックします。
  1. するってーと、リポジトリ名/.github/workflows/ 配下に先程のファイルが作成されているはずです。
  1. 次にWordPressプラグインリポジトリのSVNのログイン情報を登録します。まずはGitHubリポジトリの右の方にある「Settings」→「Secrets」を開きます。
  2. 「Add a new secret」をクリックします。
  3. 「Name」に「SVN_USERNAME」と入れ、「Value」にユーザー名を入れます。
  4. 「Add secret」をクリックします。
  1. 同様にして「SVN_PASSWORD」も設定します。

デプロイ

タグをGitHubにプッシュするとActionが作動し、WordPressのプラグインリポジトリに反映されます。

  1. 開発環境でgitの該当リポジトリにタグを付けます。
    例: $ git tag 0.3.1
  2. タグをプッシュします。
    例: $ git push origin 0.3.1
  3. GitHub Actionsのタブを開くと成功失敗がわかります。成功するとチェックマークが付き、失敗するとバツマークが付きます。
  1. 各アクションのタイトル、例えばここでは「Deploy to WordPress.org」をクリックするとデプロイの詳細が表示されます。

バージョンアップは無しでreadmeやassetを更新するには

  1. WordPress.org Plugin Readme/Assets Update を参考にプラグインのデプロイと同じようにワークフローを設定します。
  2. GitHubのマスターブランチにコミットをプッシュすると、このActionが起動します。

毎回、仮想環境が都度作られるのでなんか富豪的でもったいない気がするので、テストをせめて何かテストを入れたいなあ。。。