# https://help.github.com/en/categories/automating-your-workflow-with-github-actions # https://github.com/sebastianbergmann/phpunit/blob/master/.github/workflows/ci.yml on: push: branches: - main pull_request: branches: - main name: "CI" jobs: static-code-analysis: name: "Static Code Analysis" runs-on: ubuntu-latest env: PHAN_ALLOW_XDEBUG: 0 PHAN_DISABLE_XDEBUG_WARN: 1 steps: - name: "Checkout" uses: actions/checkout@v3 - name: "Install PHP" uses: shivammathur/setup-php@v2 with: php-version: "7.4" tools: pecl coverage: none extensions: ast, json - name: "Update dependencies with composer" run: composer update --no-interaction --no-ansi --no-progress --no-suggest - name: "Run phan" run: php vendor/bin/phan build-docs: name: "Build and publish Docs" runs-on: ubuntu-latest steps: - name: "Checkout sources" uses: actions/checkout@v3 - name: "Install PHP" uses: shivammathur/setup-php@v2 with: php-version: "8.1" coverage: none tools: phpDocumentor extensions: json - name: "Build Docs" run: phpdoc --config=phpdoc.xml - name: "Publish Docs to gh-pages" uses: JamesIves/github-pages-deploy-action@v4.3.4 with: branch: gh-pages folder: docs clean: true tests: name: "Unit Tests" runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-latest - windows-latest php-version: - "7.4" - "8.0" - "8.1" steps: - name: "Checkout" uses: actions/checkout@v3 - name: "Install PHP with extensions" uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} coverage: pcov extensions: json - name: "Install dependencies with composer" run: composer update --no-ansi --no-interaction --no-progress --no-suggest - name: "Run tests with phpunit" run: php vendor/phpunit/phpunit/phpunit --configuration=phpunit.xml - name: "Send code coverage report to Codecov.io" uses: codecov/codecov-action@v3