👏
GitHub Actions 上で PHP の Built-in web server を起動する
GitHub Actions 上で PHP の Built-in web server を起動し、 localhost へアクセスします。
サーバー起動のコマンド(php -S
)を普通に実行すると、 GitHub Actions の Step がそこで止まってしまいます。なので、&
を付けたバックグラウンド実行をします。
そうすることで、以降の Step で localhost にアクセスする処理を実行する出来ます。
- name: Run server
run: php -S localhost:8000 &
- name: Access server
run: curl http://localhost:8000
詳細
ファイル構成は以下の通りです。
.
├── .github
│ └── workflows
│ └── build-in-server.yml
├── README.md
└── index.php
index.php
ではシンプルにhello world
を JSON で返すようにしています。
index.php
<?php
header("Content-Type: application/json; charset=utf-8");
echo '{"message": "hello world"}';
GitHub Actions の workflow では、actions/checkout
とshivammathur/setup-php
を行った後、php -S localhost:8000 &
を行います。
curl のアクセス結果は GITHUB_STEP_SUMMARY に出力しています。
build-in-server.yml
name: build-in server
on:
push:
branches:
- main
jobs:
run:
runs-on: ubuntu-latest
strategy:
matrix:
php-versions: [ '8.1' ]
name: PHP ${{ matrix.php-versions }}
steps:
- name: checkout
uses: actions/checkout@v3
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
- name: Run server
run: |
php -S localhost:8000 &
sleep 5
- name: Access server
run: curl http://localhost:8000 >> $GITHUB_STEP_SUMMARY
結果は Summary に表示されます。この方法は素早くサーバーを建てられるので便利でした。
Discussion