Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テストやOSS開発に役立つSetup PHP Action

テストやOSS開発に役立つSetup PHP Action

2025-11-24 PHPカンファレンス香川2025 レギュラートーク資料
https://fortee.jp/phpconkagawa-2025

Avatar for Atsushi Matsuo

Atsushi Matsuo

November 24, 2025
Tweet

More Decks by Atsushi Matsuo

Other Decks in Programming

Transcript

  1. テストやOSS開発に役立つSetup PHP Action 自己紹介 はじめに 松尾篤 • PHP使用歴:約20年 • PHPを使った開発歴は約17年

    • 2023年4月にGaroon開発チームに加入 • GitHubアカウント:https://github.com/matsuo • 使ったことがあるCI/CDツールおよびサービス • Jenkins • Travis CI • CircleCI • GitLab CI • GitHub Actions 5
  2. テストやOSS開発に役立つSetup PHP Action Setup PHP Actionの概要 Setup PHP Actionの概要と特長 •

    GitHub ActionsでPHPや関連ツールをセットアップするためのアクション • URL : https://github.com/marketplace/actions/setup-php-action • GitHubが公式に提供しているアクションではない • ライセンスはMITライセンス • PHP Foundationのコア開発者であるShivam Mathur氏が開発および保守 • 同氏が開発および保守しているその他のプロジェクト • https://github.com/shivammathur/homebrew-php • https://github.com/shivammathur/php-builder • https://github.com/shivammathur/php-builder-windows 7
  3. テストやOSS開発に役立つSetup PHP Action Setup PHP Actionを導入する背景 Setup PHP Actionの概要と特長 •

    日々の開発を効率的かつ安全に進めるにはテストの自動化が重要 • 開発では複数バージョンのPHPや複数のOSに対応させる必要が出てくる ➢ Setup PHP Actionを使うことでテスト環境構築の手間を省くことが可能 8
  4. テストやOSS開発に役立つSetup PHP Action Setup PHP Actionの特長 Setup PHP Actionの概要と特長 •

    PHPの各バージョンに対応 • マルチプラットフォーム対応 • さまざまなPHP関連ツールに対応 • さまざまな拡張モジュールに対応 9
  5. テストやOSS開発に役立つSetup PHP Action Setup PHP Actionの特長:PHPの各バージョンに対応 Setup PHP Actionの概要と特長 •

    バージョン5.3からバージョン8.5までのPHPに対応(2025年11月現在) • 5.3、5.4、5.5、5.6、7.0、7.1、7.2、7.3、7.4、8.0(End of life) • 8.1、8.2(Security fixes only) • 8.3、8.4、8.5(Active) • 開発中のPHP 8.6 nightly buildにも対応 10
  6. テストやOSS開発に役立つSetup PHP Action Setup PHP Actionの特長:マルチプラットフォーム対応 Setup PHP Actionの概要と特長 •

    GitHub-hosted runnersでは下記のOSに対応(2025年11月現在) • Ubuntu • Ubuntu 24.04 (x86_64/aarch64) • Ubuntu 22.04 (x86_64/aarch64) • Windows Server • Windows Server 2025 (x64) • Windows Server 2022 (x64) • macOS • macOS Tahoe 26 (arm64) • macOS Sequoia 15 (x86_64/arm64) • macOS Sequoia 14 (arm64) • macOS Ventura 13 (x86_64) 11
  7. テストやOSS開発に役立つSetup PHP Action Setup PHP Actionの特長:さまざまなPHP関連ツールに対応 Setup PHP Actionの概要と特長 •

    対応しているツール一覧 • backward-compatibility-check, behat, blackfire, blackfire-player, box, castor, churn, codeception, composer, composer-dependency-analyser, composer-normalize, composer-prefetcher, composer-require-checker, composer-unused, cs2pr, deployer, ecs, flex, grpc_php_plugin, infection, mago, name-collision-detector, parallel-lint, pecl, phan, phing, phinx, phive, php-config, php-cs-fixer, php-scoper, phpcbf, phpcpd, phpcs, phpdoc or phpDocumentor, phpize, phplint, phpmd, phpspec, phpstan, phpunit, phpunit-bridge, phpunit-polyfills, pie, pint, prestissimo, protoc, psalm, rector, symfony or symfony-cli, vapor or vapor-cli, wp or wp-cli 12
  8. テストやOSS開発に役立つSetup PHP Action Setup PHP Actionの特長:さまざまな拡張モジュールに対応 Setup PHP Actionの概要と特長 •

    UbuntuおよびmacOSではPECL(PHP Extension Community Library) もしくはGitリポジトリ経由で拡張モジュールをセットアップ可能 • WindowsではPECL経由でDLLファイルが含まれている拡張モジュールを セットアップ可能 13
  9. テストやOSS開発に役立つSetup PHP Action OSSにコントリビュートする場合 Setup PHP Actionが役立つ場面 • ソフトウェアを新しいバージョンのPHPに対応させる場合 •

    ソフトウェアを異なるOSに対応させる場合 • テストが自動実行されることで影響範囲の考慮漏れに気づきやすい 15
  10. テストやOSS開発に役立つSetup PHP Action Setup PHP Actionの使い方 Setup PHP Actionの使い方 •

    ワークフローファイルにて「uses: shivammathur/setup-php@v2」と 記述することでPHP環境をセットアップできる • 記述例 20 - name: Setup PHP uses: shivammathur/setup-php@v2
  11. テストやOSS開発に役立つSetup PHP Action Setup PHP Actionの使い方 Setup PHP Actionの使い方 •

    サプライチェーン攻撃のリスクや予期せぬ破壊的変更のリスクを低減する ためにコミットハッシュで指定する場合 • 記述例 21 - name: Setup PHP uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
  12. テストやOSS開発に役立つSetup PHP Action コミットハッシュの探し方 Setup PHP Actionの使い方 • https://github.com/shivammathur/setup-php/releases を開く

    22 7文字程度の短縮コミットハッシュをクリックすると40桁のコミットハッシュを確認できる(リンク先URLの末尾) https://github.com/shivammathur/setup-php/commit/bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f
  13. テストやOSS開発に役立つSetup PHP Action PHP 8.5の環境でPHPUnitを実行する場合の記述例 Setup PHP Actionの使い方 24 jobs:

    test: runs-on: ubuntu-latest steps: - name: Setup PHP uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5 with: php-version: '8.5' - uses: actions/checkout@v5 - name: Install dependencies run: composer install - name: Run PHPUnit run: ./vendor/bin/phpunit tests
  14. テストやOSS開発に役立つSetup PHP Action 複数バージョンのPHPでPHPUnitを実行する場合の記述例 Setup PHP Actionの使い方 25 jobs: test:

    runs-on: ubuntu-latest strategy: matrix: php-versions: ['8.2', '8.3', '8.4', '8.5'] steps: - name: Setup PHP uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5 with: php-version: ${{ matrix.php-versions }} - uses: actions/checkout@v5 - name: Install dependencies run: composer install - name: Run PHPUnit run: ./vendor/bin/phpunit tests
  15. テストやOSS開発に役立つSetup PHP Action マルチプラットフォーム対応 Setup PHP Actionの使い方 • ワークフローでジョブを処理するランナーのラベルを「runs-on」に記述 •

    パブリックリポジトリで使えるGitHub-hosted runners(抜粋) • ubuntu-latest、ubuntu-24.04、ubuntu-22.04 • ubuntu-24.04-arm、 ubuntu-22.04-arm • windows-latest、windows-2025、windows-2022 • macos-latest、macos-14、macos-15、macos-15-intel • ubuntu-slim、macos-26(2025年11月時点ではpublic preview) 26
  16. テストやOSS開発に役立つSetup PHP Action Ubuntu 22.04の環境でPHPUnitを実行する場合の記述例 Setup PHP Actionの使い方 27 jobs:

    test: runs-on: ubuntu-22.04 steps: - name: Setup PHP uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5 with: php-version: '8.5' - uses: actions/checkout@v5 - name: Install dependencies run: composer install - name: Run PHPUnit run: ./vendor/bin/phpunit tests
  17. テストやOSS開発に役立つSetup PHP Action 複数のOSでPHPUnitを実行する場合の記述例 Setup PHP Actionの使い方 28 jobs: test:

    runs-on: ${{ matrix.operating-system }} strategy: matrix: operating-system: ['ubuntu-latest', 'windows-latest', 'macos-latest'] steps: - name: Setup PHP uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5 with: php-version: '8.5' - uses: actions/checkout@v5 - name: Install dependencies run: composer install - name: Run PHPUnit run: ./vendor/bin/phpunit tests
  18. テストやOSS開発に役立つSetup PHP Action 複数のOSならびに複数バージョンのPHPでPHPUnitを実行する場合の記述例 Setup PHP Actionの使い方 29 jobs: test:

    runs-on: ${{ matrix.operating-system }} strategy: matrix: operating-system: ['ubuntu-latest', 'windows-latest', 'macos-latest'] php-versions: ['8.2', '8.3', '8.4', '8.5'] steps: - name: Setup PHP uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5 with: php-version: ${{ matrix.php-versions }} - uses: actions/checkout@v5 - name: Install dependencies run: composer install - name: Run PHPUnit run: ./vendor/bin/phpunit tests
  19. テストやOSS開発に役立つSetup PHP Action さまざまなPHP関連ツールに対応 Setup PHP Actionの使い方 • オプションで「tools」を記述することでさまざまなPHP関連ツールを使用 することが可能

    • 記述例 30 - name: Setup PHP uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5 with: php-version: '8.5' tools: phan:5.5.2 coverage: none
  20. テストやOSS開発に役立つSetup PHP Action さまざまな拡張モジュールに対応 Setup PHP Actionの使い方 • オプションで「extensions」を記述することで拡張モジュールを組み込む ことが可能

    • 記述例 31 - name: Setup PHP uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5 with: php-version: '8.5' extensions: mailparse
  21. テストやOSS開発に役立つSetup PHP Action さらなる情報は公式ドキュメントを参照 Setup PHP Actionの使い方 • Setup PHP

    Actionを活用するための情報やサンプルが満載 • https://github.com/shivammathur/setup-php/blob/main/README.md 32