GitHub Action 上で 他のテーマやプラグインをインストールした上でテストを走らせるメモ

.yml のファイルの中でインストール処理をする

    # 公式ディレクトリのテーマをインストールする場合    
    - name: Install Lightning Theme
      run: |
        curl -s https://downloads.wordpress.org/theme/lightning.zip -o theme.zip
        unzip theme.zip -d tests/themes
        rm -f theme.zip
    # プライベートリポジトリのプラグインをインストール
    - name: Install Lightning G3 Pro Unit
      run: |
        curl -sL ${{ secrets.G3_PRO_UNIT_URL }} -o plugin.zip
        unzip plugin.zip -d tests/plugins
        rm -f plugin.zip

テスト対象のプラグインの tests/bootstrap.php に記載

/**
 * Manually load the plugin being tested.
 */
function _manually_load_plugin() {

	if ( admin_url() === 'http://localhost:8889/wp-admin/' ) {
		// GitHub Actions 上の場合
		// .gitHub/workflows/php_unit_tsts でインストールした lightning のディレクトリを登録
		register_theme_directory( dirname( __FILE__ ) . '/themes' );
		search_theme_directories();
	}

	switch_theme( 'lightning' );

	if ( admin_url() === 'http://localhost:8889/wp-admin/' ) {
		// GitHub Actions 上の場合
		// .gitHub/workflows/php_unit_tsts でインストールした G3 Pro Unit のファイルを読み込む
		require dirname( __FILE__ ) . '/plugins/lightning-g3-pro-unit/inc/customize/class-preset-manager.php';
	} else {
		// Activate Lightning G3 Pro Unit
		include_once(ABSPATH . 'wp-admin/includes/plugin.php');
		activate_plugin('lightning-g3-pro-unit/lightning-g3-pro-unit.php');
		// G3 Pro Unit をテスト上で有効化しても LTG3_Preset_Manager クラスの読み込みに失敗してテストが通らないため、
		// クラスファイルを直接読み込んでいる.
		require dirname( dirname( dirname( __FILE__ ) ) ) . '/lightning-g3-pro-unit/inc/customize/class-preset-manager.php';
	}

}
tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );

投稿者プロフィール

kurudrive
名古屋のウェブ制作会社数社に10年程度務めた後、株式会社ベクトル設立。
企画・運営・コンサルティング〜WordPressを中心としたシステム開発まで幅広く携わる。
[ 著書 ]
・いちばんやさしいWordPressの教本(共著)
・現場でかならず使われているWordPressデザインのメソッド(共著)
[ 最近のWordPressコミュニティでの活動 ]
2018 WordCampOsaka セッションスピーカー
2017 WordCampKyoto セッションスピーカー
2016 WordCampTokyo LT
2016 WordCampKansai ハンズオン世話役
2015 WordCampTokyo セッションスピーカー
2015 WordCampKansai セッションスピーカー
2014 WordFesNagoya 実行委員 & セッションスピーカー
2013 WordCampTokyo セッションスピーカー(パネラー)
2013 WordFesNagoya 実行委員 & セッションスピーカー
2013 WordCrabFukui セッションスピーカー

Follow me!

シンプルでカスタマイズしやすいWordPressテーマ

Lightningは twitter Bootstrap ベースのシンプルでカスタマイズしやすいWordPressテーマです。
プラグイン VK All in One Expansion Unit とセットで使う事でビジネスサイトにもブログにも活用できます。