Skip to content

minor: ci workflow updates #120

minor: ci workflow updates

minor: ci workflow updates #120

Workflow file for this run

name: CI
on:
push:
branches: [1.x]
pull_request_target:
release:
types: [created]
env:
GITHUB_API_TOKEN: ${{ secrets.GH_API_TOKEN }}
jobs:
tests:
name: PHP ${{ matrix.php }}
runs-on: ubuntu-latest
strategy:
matrix:
php: [8.0, 8.1, 8.2]
steps:
- uses: zenstruck/.github/.github/workflows/php-test-symfony.yml@main
with:
php: ${{ matrix.php }}
deps: highest
build-phar:
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.0
coverage: none
- name: Install dependencies
uses: ramsey/composer-install@v3
- name: Download Box
run: wget https://github.com/box-project/box/releases/download/3.16.0/box.phar
- name: Update Version
if: github.event_name == 'release'
run: sed -i "s/@dev/$TAG/" bin/changelog
env:
TAG: ${{ github.event.release.tag_name }}
- name: Compile PHAR
run: php box.phar compile
- uses: actions/upload-artifact@v4
name: Upload the PHAR artifact
with:
name: changelog.phar
path: bin/changelog.phar
composer-validate:
uses: zenstruck/.github/.github/workflows/php-composer-validate.yml@main
test-phar:
runs-on: ubuntu-latest
name: Test PHAR
needs:
- build-phar
- tests
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.0
coverage: none
- uses: actions/download-artifact@v4
with:
name: changelog.phar
path: .
- name: Prepare PHAR
run: |
mv changelog.phar changelog
chmod +x changelog
- name: Test generate
run: |
./changelog
- name: Test self-update/rollback
if: github.event_name != 'release'
run: |
./changelog --version
./changelog self-update
./changelog --version
# ./changelog self-update --rollback
# ./changelog --version
publish-phar:
runs-on: ubuntu-latest
name: Publish PHAR
needs:
- composer-validate
- test-phar
if: github.event_name == 'release'
steps:
- uses: actions/download-artifact@v4
with:
name: changelog.phar
path: .
- name: Upload changelog.phar
uses: shogo82148/actions-upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: changelog.phar
asset_name: changelog.phar
asset_content_type: application/zip
fixcs:
name: Run php-cs-fixer
needs: [composer-validate, test-phar]
if: (github.event_name == 'push' || github.event_name == 'schedule') && !startsWith(github.ref, 'refs/tags') && github.repository_owner == 'zenstruck'
runs-on: ubuntu-latest
steps:
- uses: zenstruck/.github/actions/php-cs-fixer@main
with:
php: 8
key: ${{ secrets.GPG_PRIVATE_KEY }}
token: ${{ secrets.COMPOSER_TOKEN }}
sync-with-template:
name: Sync meta files
needs: [composer-validate, test-phar]
if: (github.event_name == 'push' || github.event_name == 'schedule') && !startsWith(github.ref, 'refs/tags') && github.repository_owner == 'zenstruck'
runs-on: ubuntu-latest
steps:
- uses: zenstruck/.github/actions/sync-with-template@main
with:
key: ${{ secrets.GPG_PRIVATE_KEY }}
token: ${{ secrets.COMPOSER_TOKEN }}