Skip to content

Build .phar with GitHub Actions #136

Build .phar with GitHub Actions

Build .phar with GitHub Actions #136

Workflow file for this run

name: Continuous integration
on: [push]
jobs:
build:
runs-on: ubuntu-latest
continue-on-error: true
strategy:
fail-fast: true
matrix:
php: [8.1, 8.2, 8.3, 8.4]
stability: [prefer-lowest, prefer-stable]
name: PHP ${{ matrix.php }} - ${{ matrix.stability }}
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
tools: composer:v2
coverage: xdebug
- name: Install dependencies
uses: nick-invision/retry@v2
with:
timeout_minutes: 5
max_attempts: 5
command: |
composer update --${{ matrix.stability }} --prefer-dist --no-interaction --no-progress
# revert updated composer.lock
git checkout composer.lock
- name: Run tests
run: php vendor/bin/phpunit
- name: Submit code coverage
uses: codecov/codecov-action@v2
#- name: Evaluate semantic versioning
# run: |
# wget http://psvcg.coreteks.org/php-semver-checker-git.phar
# php php-semver-checker-git.phar suggest -vvv
phar:
runs-on: ubuntu-latest
name: Build PHAR
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.4
tools: composer:v2
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-progress
- name: Install Box
run: |
wget https://github.com/box-project/box/releases/latest/download/box.phar
chmod +x box.phar
sudo mv box.phar /usr/local/bin/box
- name: Build PHAR
run: box compile
- name: Upload PHAR artifact
uses: actions/upload-artifact@v5
with:
name: php-semver-checker-phar
path: php-semver-checker.phar
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: php-semver-checker.phar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}