1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- name: "Continuous Integration"
- on:
- push:
- paths-ignore:
- - 'README.md'
- pull_request:
- paths-ignore:
- - 'README.md'
- env:
- COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --prefer-dist"
- COVERAGE_FLAGS: "--coverage-text --coverage-clover build/logs/clover.xml"
- jobs:
- tests:
- name: PHP ${{ matrix.php-version }}
- runs-on: ubuntu-latest
- strategy:
- matrix:
- php-version:
- - "7.2"
- - "7.3"
- - "7.4"
- - "8.0"
- - "8.1"
- - "8.2"
- include:
- - php-version: 8.1
- coverage: coverage
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- - name: Setup PHP, with composer and extensions
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php-version }}
- extensions: dom
- coverage: xdebug
- env:
- update: true
- COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: Setup Problem Matchers for PHPUnit
- run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- - name: Get composer cache directory
- id: composer-cache
- run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- - name: Cache composer dependencies
- uses: actions/cache@v1
- with:
- path: ${{ steps.composer-cache.outputs.dir }}
- key: ${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.json') }}
- restore-keys: ${{ matrix.php-version }}-composer-
- - name: Install Composer
- uses: nick-invision/retry@v1
- with:
- timeout_minutes: 10
- max_attempts: 3
- command: composer update ${{ env.COMPOSER_FLAGS }}
- - name: composer validate
- run: composer validate --strict
- - name: Test with phpunit (with coverage)
- id: phpunit-coverage
- if: "matrix.coverage == 'coverage'"
- run: composer run test -- --verbose ${{ env.COVERAGE_FLAGS }}
- - name: Test with phpunit (without coverage)
- if: "matrix.coverage != 'coverage'"
- run: composer run test -- --verbose
- - name: Submit Coveralls
- if: steps.phpunit-coverage.outcome == 'success'
- uses: nick-invision/retry@v1
- with:
- timeout_minutes: 10
- max_attempts: 3
- command: |
- [[ -f vendor/bin/php-coveralls ]] && COVERALLS_PATH=vendor/bin/php-coveralls || COVERALLS_PATH=vendor/bin/coveralls
- [[ -n $COVERALLS_REPO_TOKEN ]] && php $COVERALLS_PATH -v --exclude-no-stmt || true
- env:
- COVERALLS_RUN_LOCALLY: 1
- COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|