Skip to content

Release

Release #9

Workflow file for this run

---
name: Release
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+"
workflow_dispatch:
inputs:
composer-options:
description: "Composer options for ramsey/composer-install GitHub Action"
required: false
default: "--prefer-dist --no-scripts"
type: string
permissions:
contents: write
jobs:
tests:
uses: ./.github/workflows/unit-tests.yaml
build:
needs: tests
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
php:
- 8.2
tools:
- box:4.6 # available since https://github.com/shivammathur/setup-php/releases/tag/2.27.0
steps:
- # https://github.com/actions/checkout
name: Checkout
uses: actions/checkout@v4
- # https://github.com/shivammathur/setup-php
name: Setup PHP runtime
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: "none"
tools: ${{ matrix.tools }}
- # https://getcomposer.org/doc/06-config.md#platform
name: Setup Composer Platform
run: |
composer config platform.php 8.1
- # https://github.com/ramsey/composer-install
name: Install Composer dependencies
uses: ramsey/composer-install@v3
with:
composer-options: ${{ inputs.composer-options }}
env: # https://github.com/ramsey/composer-install?tab=readme-ov-file#fork-and-private-repositories
COMPOSER_AUTH: '{"github-oauth": {"github.com": "${{ secrets.COMPOSER_AUTH }}"}}'
- # https://github.com/llaville/box-manifest
name: Download BOX Manifest Artifact
env:
BOX_MANIFEST_VERSION: "4.0.1"
run: |
curl -Ls "https://github.com/llaville/box-manifest/releases/download/$BOX_MANIFEST_VERSION/box-manifest.phar" -o /usr/local/bin/box-manifest
chmod +x /usr/local/bin/box-manifest
- # https://github.com/llaville/box-manifest
name: Build Release Artifact
run: |
box-manifest make build stub configure -r console-table.txt -r plain.txt -r sbom.json --output-stub stub.php --output-conf box.json.dist -vvv --ansi
box compile -c box.json.dist -vvv --ansi
- # https://github.com/softprops/action-gh-release
name: Create Release from current tag
if: github.ref_type == 'tag'
uses: softprops/action-gh-release@v2
with: # https://github.com/softprops/action-gh-release#-customizing
prerelease: false
draft: false
body_path: ${{ github.workspace }}/.changes/2.x/${{ github.ref_name }}.md
# https://github.com/softprops/action-gh-release#%EF%B8%8F-uploading-release-assets
files: |
${{ github.workspace }}/sarif-php-sdk.phar
fail_on_unmatched_files: true
tag_name: ${{ github.ref_name }}