|
|
@@ -0,0 +1,69 @@
|
|
|
+name: "Continuous Integration"
|
|
|
+
|
|
|
+on:
|
|
|
+ - push
|
|
|
+ - pull_request
|
|
|
+
|
|
|
+env:
|
|
|
+ COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --prefer-dist"
|
|
|
+
|
|
|
+jobs:
|
|
|
+ tests:
|
|
|
+ name: "CI"
|
|
|
+
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+
|
|
|
+ strategy:
|
|
|
+ matrix:
|
|
|
+ php-version:
|
|
|
+ - "5.3"
|
|
|
+ - "5.4"
|
|
|
+ - "5.5"
|
|
|
+ - "5.6"
|
|
|
+ - "7.0"
|
|
|
+ - "7.1"
|
|
|
+ - "7.2"
|
|
|
+ - "7.3"
|
|
|
+ - "7.4"
|
|
|
+ - "8.0"
|
|
|
+ # disabled for now as it leads to PHPUnit installing in a very old 4.3 version due to phpspec/prophecy not allowing 8.1
|
|
|
+ # - "8.1"
|
|
|
+
|
|
|
+ steps:
|
|
|
+ - name: "Checkout"
|
|
|
+ uses: "actions/checkout@v2"
|
|
|
+
|
|
|
+ - name: "Install PHP 5"
|
|
|
+ if: "startsWith(matrix.php-version, '5.')"
|
|
|
+ uses: "shivammathur/setup-php@v2"
|
|
|
+ with:
|
|
|
+ coverage: "none"
|
|
|
+ php-version: "${{ matrix.php-version }}"
|
|
|
+ extensions: "mongo"
|
|
|
+
|
|
|
+ - name: "Install PHP 7+"
|
|
|
+ if: "!startsWith(matrix.php-version, '5.')"
|
|
|
+ uses: "shivammathur/setup-php@v2"
|
|
|
+ with:
|
|
|
+ coverage: "none"
|
|
|
+ php-version: "${{ matrix.php-version }}"
|
|
|
+
|
|
|
+ - name: Get composer cache directory
|
|
|
+ id: composercache
|
|
|
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
|
|
+
|
|
|
+ - name: Cache dependencies
|
|
|
+ uses: actions/cache@v2
|
|
|
+ with:
|
|
|
+ path: ${{ steps.composercache.outputs.dir }}
|
|
|
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
|
|
+ restore-keys: ${{ runner.os }}-composer-
|
|
|
+
|
|
|
+ - name: "Install latest dependencies"
|
|
|
+ run: |
|
|
|
+ # Remove PHPStan as it requires a newer PHP
|
|
|
+ composer remove phpstan/phpstan --dev --no-update
|
|
|
+ composer update ${{ env.COMPOSER_FLAGS }}
|
|
|
+
|
|
|
+ - name: "Run tests"
|
|
|
+ run: "composer test"
|