このリポジトリは、WordPressプラグインを制作する上でモダンな環境からスタートできるテンプレートリポジトリです。
- Linter/テストツールを採用したモダンな開発環境
- TypeScript
- 開発に便利なコマンド群
- GitHub Actionsを使ったCI/CD
PHP_CodeSniffer ESLint Stylelint
PHPStan
PHPUnit Jest
コマンド | できること |
---|---|
composer zip | 設定ファイル等を除いたzip化 |
composer release | cmd/create-verup-issue.shを使って バージョンアップissue自動作成(要GitHub CLI) |
composer phpstan | PHPStan実行 |
composer test | PHPUnit実行 |
composer make-jspot | JavaScript用の翻訳ファイル(.pot)生成 |
composer make-pot | PHP用の翻訳ファイル(.po)生成 |
composer make-json | JavaScript用の翻訳ファイル(.json)生成 |
内容 | 条件 |
---|---|
PHPUnit | class/ディレクトリ配下のファイルをプルリクエスト |
ESLint/Stylelint | src/ディレクトリ配下のファイルをプルリクエスト |
SVN自動デプロイ | tagをプッシュ |
以下のリポジトリから次のファイルが自動的にダウンロードされます。
- commit-msg
- pre-commit
- conf/linter_config.sh
これによりgitに以下の制約が加わります。
- ブランチ名は< ticket number >-< type >-< subject >にしないとcommitできない
- Linter(PHP_CodeSniffer/ESLint/Stylelint)にパスしないとcommitできない
- コミットメッセージにチケット番号の自動付与(e.g. refs #xx commit message)
詳しい内容は以下のリポジトリをご確認ください。
https://github.com/braveryk7/GitHooks
新規プロジェクトを開始したら、以下の手順で開発環境を整えましょう。
npm/composerの各パッケージをインストールします。
$ npm install
$ composer install
プロジェクト名が決まったら以下を修正します。 例えば、今回はmy-pluginというプロジェクト名と仮定します。
body="
- [ ] readme.txtの更新(バージョン情報、更新履歴)
- - [ ] .phpの更新(バージョン情報)
+ - [ ] my-plugin.phpの更新(バージョン情報)
- [ ] GitHub Releaseの作成
- [ ] 記事反映
- [ ] SVN trunkへの追加
- [ ] アップデート告知
"
# ZIP name
- zip_file_name=""
+ zip_file_name="my-plugin"
"zip": "npm run build && bash cmd/zip.sh",
"release": "bash cmd/create-verup-issue.sh",
- "make-jspot": "./vendor/bin/wp i18n make-pot . languages/js/PROJECT_NAME-ja.pot --skip-php",
+ "make-jspot": "./vendor/bin/wp i18n make-pot . languages/js/my-plugin-ja.pot --skip-php",
- "make-pot": "./vendor/bin/wp i18n make-pot . languages/PROJECT_NAME-ja.po --skip-js",
+ "make-pot": "./vendor/bin/wp i18n make-pot . languages/my-plugin-ja.po --skip-js",
"make-json": "./vendor/bin/wp i18n make-json languages/js --no-purge"
- name: Set outputs
run: |
TAG=`echo ${GITHUB_REF##*/} | sed -e "s/v//"`
echo ::set-output name=VERSION::$TAG
- echo ::set-output name=PROJECT_NAME::
+ echo ::set-output name=PROJECT_NAME::my-plugin
id: svn-env
# SVN NAME
- SVN_NAME=""
+ SVN_NAME="my-plugin"
on:
pull_request:
paths:
- 'class/**'
+ - 'my-plugin.php'
状況に合わせて修正してください。
それぞれ以下の内容でGitHub Secretsを登録します。
登録名 | 内容 |
---|---|
SVN_URL | WordPressのSVNリポジトリURL |
SVN_USERNAME | wordpress.orgのログインID |
SVN_PASSWORD | wordpress.orgのパスワード |
GitHub SecretsはSVN自動デプロイ時に使用されます。 値を設定しないと自動デプロイは行なえません(GitHub Actionがタグプッシュのたびに失敗します)。
当プログラムを利用したいかなる不都合も製作者は責任を負いかねます。
初版