-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Taroskyのオーガニゼーションで共有しているワークフロー&複合アクションです。
.github/workflowsに格納されています。それ自体で完結します。各オプションはymlファイルの先頭に記載されているinputs
項目で確認できます。オプションはjob内のwith
で指定します。
PHP+MySQL+WordPressをインストールし、ユニットテストを行います。リポジトリにcomposerが入っており、PHPUnitをcomposer scriptから実行できる必要があります。
デフォルトのコマンドは test
です。変更する場合は composer_command: unittest
というように指定してください。
jobs:
test:
strategy:
matrix:
php: [ '7.3', '7.4', '8.0' ] # PHP versions to check.
wp: [ 'latest', '5.9' ] # WordPress version to check.
uses: tarosky/workflows/.github/workflows/wp-unit-test.yml@main
with:
php_version: ${{ matrix.php }}
wp_version: ${{ matrix.wp }}
PHPでcomposerをインストールし、スクリプトを実行します。composer lint
で動作します。コマンド名を変更する場合は composer_command: lint_php
で指定してください。
jobs:
phpcs:
uses: tarosky/workflows/.github/workflows/phpcs.yml@main
with:
version: 8.0
PHP8.0から <?
が非推奨となりましが、この記法はPHP_CodeSnifferでは見つけることができないケースがあり、にもかかわらず本番環境でFatal Errorを起こすことがあったので、PHPファイルをスキャンし、ショートオープンタグを見つけるとエラーになります。path
でスキャンするパスを指定してください。デフォルトはリポジトリルートです。
jobs:
php-shor-open-tag:
uses: tarosky/workflows/.github/workflows/php-short-open-tag.yml@main
with:
path: 'wp-content/themes/my-theme' # WordPressを丸ごとディレクトリに入れている場合など
Wordpress公式ディレクトリでは、SVNのpre-commitフックでphp -l file.php
を全PHPファイルに対して実行し、エラーが起きるとリジェクトします。composerなどを利用している場合、vendorディレクトリの中にある依存ライブラリがひっかかるケースもあり、なおかつデプロイという最終段階になってはじめて露見するので、事前にこのチェックを通過しておくとわかりやすいです。
path
でスキャンするパスを指定してください。デフォルトはリポジトリルートです。
W.I.P ビルドスクリプトの指定などは実装予定です。
jobs:
phplint:
uses: tarosky/workflows/.github/workflows/phplint.yml@main
with:
version: 8.1 # デプロイする際のPHPバージョンがわかっている場合など
path: 'wp-content/themes/my-theme' # WordPressを丸ごとディレクトリに入れている場合など
Nodeをインストールし、npmでテストを行います。npm スクリプトで lint
が動作することが前提です。また、package
にコマンド名を渡すことで、ビルドが成功するかを検証することも可能です。これはdependabotなどを有効にしている場合に活用できます。
jobs:
assets:
uses: tarosky/workflows/.github/workflows/npm.yml@main
with:
node_version: 16 # デフォルトは14
command: test # デフォルトは lint
package: build # この場合、 npm run build を実行。指定なしなら何もしない
Backlogの課題番号がコミットメッセージに含まれている場合、通知を行います。
- tarosky-bot というユーザーがBacklogの当該プロジェクトのメンバーになっている必要があります。
-
BACKLOG_API_KEY
という名称でAPIキーがプロジェクトまたは組織で利用できる必要があります。 -
secrets: inherit
を指定し、BacklogのAPIキーをワークフローが利用できるようにしてください。 -
host
を変更すると、Backlog スペースを変更できます。
jobs:
notify:
uses: tarosky/workflows/.github/workflows/backlog.yml@main
with:
project: PJ_STANDARD
secrets: inherit
設定したトリガーから指定するブランチへのPRを自動で作成します。デフォルト値では main
ブランチへのPRが指定されており、staging
ブランチから main
ブランチへの自動PR作成を想定しています。PRのマージ先ブランチ名、PRタイトル、PRボディテキスト、付与するラベルを指定できます。
name: Auto PR to main branch from staging
on:
push:
branches: [staging]
jobs:
auto-pr:
uses: tarosky/workflows/.github/workflows/auto-pr.yml@main
複合アクションは job.steps
で指定します。workflowと同様、オプション項目をwith
で指定します。
.distignore
ファイルがリポジトリにある場合、記載されているファイルをすべて削除します。リリース前の処理などに便利です。
jobs:
release:
steps:
- name: Clean Package
uses: tarosky/workflows/actions/distignore@main
README.md
をWordPressに対応した readme.txt
に変換します。wp-readmeを利用しています。
jobs:
release:
steps:
- name: Generate readme.txt
uses: tarosky/workflows/actions/wp-readme@main
GitHubのタグ情報を元に、style.cssなどのタグを書き換えます。prefix
を指定すると、 version
から削除する文字列を指定できます。
jobs:
release:
steps:
- name: Versioning
uses: tarosky/workflows/actions/versioning@main
with:
version: ${{ github.ref }} # 大体の場合はGitHubのタグを参照します。
files: style.css # カンマ区切りで記載できます。