PHPOffice/PHPPresentation

View on GitHub
.github/workflows/php.yml

Summary

Maintainability
Test Coverage
name: PHPPresentation
on: [push, pull_request]
jobs:
  php-cs-fixer:
    name: PHP CS Fixer
    runs-on: ubuntu-latest
    steps:
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '7.4'
          extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv
      - uses: actions/checkout@v2

      -   name: Validate composer config
          run: composer validate --strict

      -   name: Composer Install
          run: composer global require friendsofphp/php-cs-fixer

      -   name: Add environment path
          run: export PATH="$PATH:$HOME/.composer/vendor/bin"

      -   name: Run PHPCSFixer
          run: php-cs-fixer fix --dry-run --diff

  phpmd:
    name: PHP Mess Detector
    runs-on: ubuntu-latest
    steps:
        -   name: Setup PHP
            uses: shivammathur/setup-php@v2
            with:
                php-version: '7.4'
                extensions: gd, xml, zip
        -   uses: actions/checkout@v2

        -   name: Composer Install
            run: composer install --ansi --prefer-dist --no-interaction --no-progress

        -   name: Run phpmd
            run: ./vendor/bin/phpmd src/,tests/ text ./phpmd.xml.dist

  phpstan:
    name: PHP Static Analysis
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        php: ['7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3']
    steps:
        -   name: Setup PHP
            uses: shivammathur/setup-php@v2
            with:
                php-version: ${{ matrix.php }}
                extensions: gd, xml, zip
        -   uses: actions/checkout@v2

        -   name: Composer Install
            run: composer install --ansi --prefer-dist --no-interaction --no-progress

        -   name: Run phpstan
            run: ./vendor/bin/phpstan analyse -c phpstan.neon.dist

  phpunit:
    name: PHPUnit
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        php: ['7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3']
    steps:
      -   name: Setup PHP
          uses: shivammathur/setup-php@v2
          with:
              php-version: ${{ matrix.php }}
              extensions: gd, xml, zip
              coverage: xdebug

      -   uses: actions/checkout@v2

      -   name: Composer Install
          run: composer install --ansi --prefer-dist --no-interaction --no-progress

      -   name: Run phpunit
          run: ./vendor/bin/phpunit -c phpunit.xml.dist --coverage-clover build/clover.xml

      -   name: Upload coverage results to Coveralls
          if: matrix.php == '7.3'
          env:
            COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          run: |
            wget https://github.com/php-coveralls/php-coveralls/releases/download/v2.4.3/php-coveralls.phar
            chmod +x php-coveralls.phar
            php php-coveralls.phar --coverage_clover=build/clover.xml --json_path=build/coveralls-upload.json -vvv

  samples:
    name: Check samples
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        php: ['7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3']
    steps:
      -   name: Setup PHP
          uses: shivammathur/setup-php@v2
          with:
              php-version: ${{ matrix.php }}
              extensions: gd, xml, zip
              coverage: xdebug

      -   uses: actions/checkout@v2

      -   name: Composer Install
          run: composer install --ansi --prefer-dist --no-interaction --no-progress

      -   name: Generate samples files
          run: composer run samples