Merge pull request #10504 from danog/merge_5.x #1911
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build phar | |
on: | |
push: | |
branches: | |
- master | |
release: | |
types: | |
- published | |
permissions: | |
contents: read | |
jobs: | |
pre_job: | |
permissions: | |
actions: write | |
runs-on: ubuntu-latest | |
outputs: | |
should_skip: ${{ steps.skip_check.outputs.should_skip }} | |
steps: | |
- id: skip_check | |
uses: fkirc/[email protected] | |
with: | |
concurrent_skipping: always | |
cancel_others: true | |
do_not_skip: '["release"]' | |
# list files that may affect or are included into the built phar | |
paths: '["bin/**", "assets/**", "build/**", "dictionaries/**", "src/**", "stubs/**", "psalm", "psalm-language-server", "psalm-plugin", "psalm-refactor", "psalter", "box.json.dist", "composer.json", "config.xsd", "keys.asc.gpg", "scoper.inc.php"]' | |
build-phar: | |
permissions: | |
contents: write # for release | |
needs: pre_job | |
if: ${{ needs.pre_job.outputs.should_skip != 'true' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.1' | |
tools: composer:v2 | |
coverage: none | |
env: | |
fail-fast: true | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # required for composer to automatically detect root package version | |
- name: Get Composer Cache Directories | |
id: composer-cache | |
run: | | |
echo "files_cache=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
echo "vcs_cache=$(composer config cache-vcs-dir)" >> $GITHUB_OUTPUT | |
- name: Generate composer.lock | |
run: | | |
composer update --no-install | |
- name: Cache composer cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{ steps.composer-cache.outputs.files_cache }} | |
${{ steps.composer-cache.outputs.vcs_cache }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-composer- | |
- name: Run composer install | |
run: composer install -o | |
# DO NOT set this, we need composer to figure out the version itself | |
# env: | |
# COMPOSER_ROOT_VERSION: dev-master | |
- run: bin/build-phar.sh | |
env: | |
GPG_SIGNING: 1 | |
GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }} | |
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
- name: Upload release assets | |
if: ${{ github.event_name == 'release' }} | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: build/psalm.phar* | |
file_glob: true | |
tag: ${{ github.ref }} | |
- name: Release psalm/phar | |
run: bin/github-deploy-phar.sh | |
env: | |
PHAR_REPO_TOKEN: ${{ secrets.PHAR_REPO_TOKEN }} | |