name: "PHP Checks" on: workflow_call: inputs: php-version: description: 'The version of PHP to use' default: '8.2' type: string composer-cmd: description: 'Command to install dependencies' type: string default: 'install --ansi --no-interaction --no-progress --no-suggest --prefer-dist' jobs: php-checks: name: "PHP Checks" runs-on: ubuntu-latest environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: "Checkout Code" uses: "actions/checkout@v2" - name: "Install PHP" uses: "shivammathur/setup-php@v2" with: coverage: "pcov" php-version: "${{ inputs.php-version }}" ini-values: memory_limit=-1 tools: composer:v2 - name: Get Composer Cache Directory id: composer-cache run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: "Cache dependencies" uses: "actions/cache@v2" with: path: ${{ steps.composer-cache.outputs.dir }} key: "${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}" restore-keys: "${{ runner.os }}-composer-" - name: "Install dependencies" run: "composer ${{ inputs.composer-cmd }}" - name: "Check Code Style" run: "composer fmt:check" - name: "Run Psalm" run: "composer psalm:gh" - name: "Run Test Suite" run: "composer test" - name: Setup Pages uses: actions/configure-pages@v4 if: ${{ github.ref_name == 'master' }} - name: Upload artifact uses: actions/upload-pages-artifact@v3 if: ${{ github.ref_name == 'master' }} with: path: '.dev/coverage' - name: Deploy to GitHub Pages if: ${{ github.ref_name == 'master' }} id: deployment uses: actions/deploy-pages@v4