LoginSignup
8
4

More than 3 years have passed since last update.

GitHub ActionsでPHPUnitを実行する

Last updated at Posted at 2020-03-06

GitHub Actionsとは

GitHub Actionsを使用すると、ワールドクラスのCI / CDですべてのソフトウェアワークフローを簡単に自動化できます。 GitHubから直接コードをビルド、テスト、デプロイでき、コードレビュー、ブランチ管理、問題のトリアージを希望どおりに機能させます。

GitHub Actions

事前準備

まずはcomposerでPHPUnitをインストールし、テストを実装しておく。
そしてcomposer.jsonにscriptsを追加しておく。

    "scripts": {
        "test": "vendor/bin/phpunit"
    }

ワークフローを作成する

ワークフローはリポジトリにYAMLファイルで作成する。

.github/workflows/{name}.yml

GitHubで作成するなら、リポジトリのActionsタブを開く。
テンプレートから選んでもいいし、「Set up a workflow yourself」から自分で作成してもいい。
ここではPHPのテンプレートをベースに作成していく。

.github/workflows/test.yml

name: Test

on: [push]

jobs:
  test:
    name: Test

    runs-on: ubuntu-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: Validate composer.json and composer.lock
      run: composer validate

    - name: Install dependencies
      run: composer install --prefer-dist --no-progress --no-suggest

    - name: Run test suite
      run: composer run-script test

リポジトリにPushするとワークフローが実行される。

複数のPHPバージョンでテストする

PHPのセットアップ

PHPのバージョンを切り替える必要があるのだが、残念ながら公式のPHP Setup Actionが無いので他を探すことになる。

shivammathur/setup-php

    steps:
    - name: Setup PHP 7.2
      uses: shivammathur/setup-php@v2
      with:
        php-version: '7.2'

PHP7.2と7.3でテストを実行する

strategyで実行環境のバリエーションを定義する。
GitHub Actionsのワークフロー構文 - GitHub ヘルプ

    strategy:
      matrix:
        php-version: ['7.2', '7.3']

    steps:
    - name: Setup PHP ${{ matrix.php-version }}
      uses: shivammathur/setup-php@v2
      with:
        php-version: ${{ matrix.php-version }}

最終的なワークフロー

name: Test

on: [push]

jobs:
  test:
    name: Test

    runs-on: ubuntu-latest

    strategy:
      matrix:
        php-version: ['7.2', '7.3']

    steps:
    - name: Setup PHP ${{ matrix.php-version }}
      uses: shivammathur/setup-php@v2
      with:
        php-version: ${{ matrix.php-version }}

    - name: Checkout
      uses: actions/checkout@v2

    - name: Validate composer.json and composer.lock
      run: composer validate

    - name: Install dependencies
      run: composer install --prefer-dist --no-progress --no-suggest

    - name: Run test suite
      run: composer run-script test

参考サイト

GitHubActionsでPHP7.4環境のPHPUnitを実行する - istyle Tech Blog

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4