name: Integration and Style Test on: push: branches: - master paths-ignore: - '**.md' - 'docs/**' pull_request: branches: - master types: - opened - synchronize - reopened - ready_for_review - review_requested paths-ignore: - '**.md' - 'docs/**' jobs: integration: name: Integration Test (PHP ${{ matrix.php-versions }}) (OS ${{ matrix.operating-system }}) runs-on: ${{ matrix.operating-system }} strategy: matrix: operating-system: [ "ubuntu-latest", "macos-latest" ] php-versions: [ "7.2", "7.3", "7.4", "8.0", "8.1" ] steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup PHP uses: "shivammathur/setup-php@v2" with: php-version: ${{ matrix.php-versions }} extensions: swoole, posix, json env: SWOOLE_CONFIGURE_OPTS: --enable-openssl - name: Setup problem matchers for PHP run: echo "::add-matcher::${{ runner.tool_cache }}/php.json" - name: Validate composer.json run: "composer validate --strict" - name: Get composer cache directory id: composer-cache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache dependencies uses: actions/cache@v2 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer Dependencies run: "composer install --prefer-dist --no-progress --optimize-autoloader" - name: Run Static Analysis run: "composer analyse" - name: Run PHPUnit run: "composer test" cs-check: name: PHP CS Fixer Check runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup PHP 7.2 uses: "shivammathur/setup-php@v2" with: php-version: "7.2" extensions: swoole, posix, json - name: Setup problem matchers for PHP run: echo "::add-matcher::${{ runner.tool_cache }}/php.json" - name: Validate composer.json run: "composer validate --strict" - name: Get composer cache directory id: composer-cache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache dependencies uses: actions/cache@v2 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: ${{ runner.os }}-composer- - name: Install Composer Dependencies run: "composer install --prefer-dist --no-progress --optimize-autoloader" - name: Run PHP CS Fixer Check run: "composer cs-fix -- --dry-run --diff"