Skip to content

Build PHAR

Build PHAR #12

Workflow file for this run

name: Build PHAR
on:
# Manual trigger
workflow_dispatch:
# Trigger when a release is created
release:
types: [created]
permissions:
contents: write
jobs:
build:
name: Build PHAR
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: zip, xml, simplexml
ini-values: phar.readonly=0
coverage: none
- name: Get Composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"
- name: Cache Composer dependencies
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
run: composer install --no-dev --optimize-autoloader --no-interaction
- name: Build PHAR
run: php build.php
- name: Test PHAR
run: |
./build/oce-import-codes.phar --version
./build/oce-import-codes.phar --help
- name: Create versioned PHAR
if: github.event_name == 'release'
run: |
VERSION=${{ github.event.release.tag_name }}
cp build/oce-import-codes.phar build/oce-import-codes-${VERSION}.phar
- name: Upload PHAR to release
if: github.event_name == 'release'
uses: softprops/action-gh-release@v2
with:
files: |
build/oce-import-codes.phar
build/oce-import-codes-${{ github.event.release.tag_name }}.phar
- name: Upload PHAR artifact (manual trigger)
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: oce-import-codes-phar
path: build/oce-import-codes.phar
retention-days: 90