diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..be783b9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,56 @@ +name: CI + +on: + pull_request: + push: + branches: + - master + +env: + timezone: UTC + REQUIRED_PHP_EXTENSIONS: 'zip' + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + php-version: + - '8.1' + - '8.2' + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Setup PHP ${{ matrix.php-version }} (${{ matrix.os }}) + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + tools: composer:v2 + coverage: pcov + + - name: Validate composer.json + run: composer validate --no-check-lock + + - name: Get Composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache Composer packages + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: composer-${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.json') }} + restore-keys: | + composer-${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.json') }} + composer-${{ runner.os }}-${{ matrix.php-version }}- + composer-${{ runner.os }}- + composer- + + - name: Install dependencies + run: composer update -o --prefer-dist --no-progress --no-interaction + + - name: Run test suite + run: vendor/bin/phpunit --verbose --coverage-text