name: Test & Build on: push: branches: [master] pull_request: release: types: [created] jobs: build-phar: runs-on: ubuntu-latest name: Build PHAR strategy: fail-fast: false matrix: php: ["8.2"] steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} ini-values: phar.readonly=0 extensions: fileinfo tools: composer:v2 coverage: pcov - name: Setup Problem Matches run: | echo "::add-matcher::${{ runner.tool_cache }}/php.json" echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - name: Install Composer dependencies uses: ramsey/composer-install@v2 - name: PHPUnit Testing run: vendor/bin/pest --coverage - name: Copy application to phar run: cp application application.phar - name: Build PHAR run: php application app:build branch-usage-checker --build-version # Smoke test - name: Ensure the PHAR works run: builds/branch-usage-checker --version - uses: actions/upload-artifact@v4 name: Upload the PHAR artifact with: name: branch-usage-checker path: builds/branch-usage-checker publish-phar: runs-on: ubuntu-latest name: Publish the PHAR needs: - "build-phar" if: github.event_name == 'release' steps: - uses: actions/download-artifact@v4 with: name: branch-usage-checker path: builds/ - name: Upload box.phar uses: softprops/action-gh-release@v2 with: token: ${{ secrets.GITHUB_TOKEN }} files: builds/branch-usage-checker