--- name: ci-pgsql permissions: contents: read pull-requests: write on: pull_request: &ignore-paths paths-ignore: - ".appveyor.yml" - ".dockerignore" - ".editorconfig" - ".eslintignore" - ".eslintrc" - ".git-blame-ignore-revs" - ".gitattributes" - ".github/CONTRIBUTING.md" - ".github/FUNDING.yml" - ".github/ISSUE_TEMPLATE.md" - ".github/PULL_REQUEST_TEMPLATE.md" - ".github/SECURITY.md" - ".gitignore" - ".gitlabs-ci.yml" - "code-of-conduct.md" - "docs/**" - "framework/.gitignore" - "framework/.phpstorm.meta.php" - "framework/CHANGELOG.md" - "framework/LICENSE.md" - "framework/README.md" - "framework/UPGRADE.md" - "LICENSE.md" - "README.md" - "ROADMAP.md" push: *ignore-paths concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: tests: name: PHP ${{ matrix.php }}-pgsql-${{ matrix.pgsql }} env: COVERAGE_DRIVER: ${{ matrix.php == 7.4 && 'xdebug' || 'none' }} PHP_EXTENSIONS: curl, intl, pdo, pdo_pgsql PHP_INI_VALUES: apc.enabled=1,apc.shm_size=32M,apc.enable_cli=1, date.timezone='UTC' PHPUNIT_GROUP: pgsql XDEBUG_MODE: coverage runs-on: ubuntu-latest strategy: fail-fast: false matrix: php: [7.4, 8.0, 8.1, 8.2, 8.3, 8.4] pgsql: [10, 11, 12, 13, 14, 15] services: postgres: image: postgres:${{ matrix.pgsql }} env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: yiitest ports: - 5432:5432 options: >- --name=postgres --health-cmd="pg_isready" --health-interval=10s --health-retries=3 --health-timeout=5s --mount type=tmpfs,destination=/var/lib/postgresql/data steps: - name: Monitor action permissions. if: runner.os != 'Windows' uses: GitHubSecurityLab/actions-permissions/monitor@v1 - name: Checkout. uses: actions/checkout@v5 - name: Setup PHP with Composer. uses: ./.github/actions/php-setup with: coverage-driver: ${{ env.COVERAGE_DRIVER }} extensions: ${{ matrix.php < 8.0 && 'apc' || 'apcu' }}, ${{ env.PHP_EXTENSIONS }} ini-values: ${{ env.PHP_INI_VALUES }}, session.save_path="${{ runner.temp }}" php-version: ${{ matrix.php }} - name: Run PHPUnit tests. uses: ./.github/actions/phpunit with: coverage-driver: ${{ env.COVERAGE_DRIVER }} coverage-token: ${{ secrets.CODECOV_TOKEN }} group: ${{ env.PHPUNIT_GROUP }}