Implements Autobahn tests against the WebSocket spec #10
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: spec tests | |
on: | |
push: | |
branches: | |
- main | |
- '*.x' | |
pull_request: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
php: [8.2, 8.3] | |
laravel: [10] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
extensions: dom, curl, libxml, mbstring, zip | |
ini-values: error_reporting=E_ALL | |
tools: composer:v2 | |
coverage: none | |
- name: Install dependencies | |
run: | | |
composer require "illuminate/contracts=^${{ matrix.laravel }}" --no-update | |
composer update --prefer-dist --no-interaction --no-progress | |
- name: Pull Autobahn Docker image | |
run: docker pull crossbario/autobahn-testsuite | |
- name: Start WebSocket server | |
run: php echo.php & | |
- name: Set server URL | |
run: sed -i "s/ws:\/\/HOST:8080/ws:\/\/$(ip route show default | awk '/default/ {print $3}'):8080/g" client-spec.json | |
- name: Run specification tests | |
run: | | |
docker run --rm \ | |
-v $PWD:/mnt/autobahn \ | |
-v $PWD/reports:/mnt/autobahn/reports \ | |
crossbario/autobahn-testsuite \ | |
wstest -m fuzzingclient -s /mnt/autobahn/client-spec.json | |
- name: Set workflow status based on Autobahn exit status | |
run: exit $? |