name: test on: push: branches: [ master ] pull_request: branches: [ master ] jobs: unit: runs-on: ubuntu-latest strategy: matrix: php-versions: [ '7.3', '7.4', '8.0', '8.1', '8.2' ] steps: - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-versions }} extensions: mbstring, intl coverage: xdebug - name: Validate composer.json and composer.lock run: composer validate - name: Get Composer Cache Directory id: composer-cache run: | echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer- - name: Install dependencies if: steps.composer-cache.outputs.cache-hit != 'true' run: composer install --prefer-dist --no-progress - name: Run test suite run: composer test e2e: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: jpribyl/action-docker-layer-caching@v0.1.1 continue-on-error: true - name: Build the docker-compose stack run: cd tests/docker && docker-compose build - name: Get Composer Cache Directory id: composer-cache run: | echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer- - name: Install dependencies if: steps.composer-cache.outputs.cache-hit != 'true' run: composer install --prefer-dist --no-progress - name: Run E2E test suite run: cd tests/docker && docker-compose up --abort-on-container-exit