8.12.5 #503
Workflow file for this run
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: 'Release' | |
env: | |
PHP_VERSION: '8.1' | |
on: | |
release: | |
types: | |
- published | |
jobs: | |
build: | |
name: Build cecil.phar | |
runs-on: ubuntu-latest | |
outputs: | |
previous_release: ${{ steps.previous_release.outputs.tag }} | |
version: ${{ steps.get_version.outputs.version }} | |
shasum: ${{ steps.sha256.outputs.shasum }} | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Get previous release | |
id: previous_release | |
run: | | |
echo "tag=$(git describe --abbrev=0 --tags `git rev-list --tags --skip=1 --max-count=1`)" >> $GITHUB_OUTPUT | |
- name: Install PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ env.PHP_VERSION }} | |
extensions: :psr, mbstring, intl, gettext, fileinfo, gd | |
coverage: none | |
- name: Cache Composer packages | |
id: composer-cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
vendor | |
tests/fixtures/website/themes | |
key: composer-ubuntu-latest-php-${{ env.PHP_VERSION }}-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
composer-ubuntu-latest-php-${{ env.PHP_VERSION }}- | |
- name: Validate composer.json | |
if: steps.composer-cache.outputs.cache-hit != 'true' | |
run: composer validate | |
- name: Install dependencies | |
if: steps.composer-cache.outputs.cache-hit != 'true' | |
run: | | |
composer install --prefer-dist --no-progress | |
composer dump-autoload --optimize | |
- name: Run build test | |
run: composer run-script test | |
- name: Get version | |
id: get_version | |
run: | | |
echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT | |
echo "${GITHUB_REF#refs/tags/}" > VERSION | |
- name: Build cecil.phar | |
run: composer run-script build | |
- name: Test cecil.phar | |
run: | | |
cd dist | |
mkdir skeleton | |
php cecil.phar new:site skeleton --demo -f -n | |
php cecil.phar build skeleton | |
php cecil.phar show:content skeleton | |
rm -rf skeleton | |
- name: Test cecil.phar (debug on) | |
env: | |
CECIL_DEBUG: 'true' | |
run: | | |
cd dist | |
mkdir skeleton | |
php cecil.phar new:site skeleton --demo -f -n | |
php cecil.phar build skeleton -vvv | |
php cecil.phar show:content skeleton | |
- name: Set SHA256 | |
id: sha256 | |
run: | | |
echo "shasum=$(shasum -a 256 ./dist/cecil.phar | awk '{printf $1}')" >> $GITHUB_OUTPUT | |
- name: Import GPG key | |
uses: crazy-max/ghaction-import-gpg@v6 | |
with: | |
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} | |
passphrase: ${{ secrets.GPG_PASSPHRASE }} | |
- name: Sign the cecil.phar | |
run: | | |
gpg --local-user arnaud@ligny.fr \ | |
--batch \ | |
--yes \ | |
--passphrase="${{ secrets.GPG_PASSPHRASE }}" \ | |
--detach-sign \ | |
--output dist/cecil.phar.asc \ | |
dist/cecil.phar | |
- name: Upload files | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cecil_phar | |
path: | | |
dist/cecil.phar | |
dist/cecil.phar.asc | |
if-no-files-found: error | |
deploy_to_github: | |
name: Deploy cecil.phar to GitHub | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Download cecil.phar | |
uses: actions/download-artifact@v4 | |
with: | |
name: cecil_phar | |
path: . | |
- name: Get release | |
id: release | |
uses: bruceadams/get-release@v1.3.2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Add cecil.phar to release | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.release.outputs.upload_url }} | |
asset_path: cecil.phar | |
asset_name: cecil.phar | |
asset_content_type: application/octet-stream | |
- name: Add cecil.phar.asc to release | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.release.outputs.upload_url }} | |
asset_path: cecil.phar.asc | |
asset_name: cecil.phar.asc | |
asset_content_type: application/octet-stream | |
- name: Generate changelog | |
id: changelog | |
uses: jaywcjlove/changelog-generator@v1.9.6 | |
with: | |
base-ref: ${{ needs.build.outputs.previous_release }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
filter: (^[U|u]pdate|Merge) | |
- name: Update release | |
id: update_release | |
uses: tubone24/update_release@v1.3.1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
body: | | |
${{ steps.changelog.outputs.changelog }} | |
--- | |
- Documentation: <https://cecil.app/documentation/> | |
- Download: <https://cecil.app/download/> | |
- Self Update: `php cecil.phar self-update` | |
deploy_to_website: | |
name: Deploy cecil.phar to website | |
runs-on: ubuntu-latest | |
needs: build | |
if: "!github.event.release.prerelease" | |
steps: | |
- name: Checkout source code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Download cecil.phar | |
uses: actions/download-artifact@v4 | |
with: | |
name: cecil_phar | |
path: dist | |
- name: Push files | |
run: bash ./scripts/deploy-dist.sh | |
env: | |
GITHUB_TOKEN: ${{ secrets.REPOS_TOKEN }} | |
update_homebrew_formula: | |
name: Update Homebrew Formulae | |
runs-on: macos-latest | |
needs: [build, deploy_to_github] | |
env: | |
COMMITTER_TOKEN: ${{ secrets.REPOS_TOKEN }} | |
steps: | |
- name: Bump Formula | |
if: "!github.event.release.prerelease" | |
uses: mislav/bump-homebrew-formula-action@v3 | |
with: | |
formula-name: cecil | |
formula-path: Formula/cecil.rb | |
homebrew-tap: Cecilapp/homebrew-tap | |
base-branch: main | |
tag-name: ${{ needs.build.outputs.version }} | |
download-url: https://github.com/Cecilapp/Cecil/releases/download/${{ needs.build.outputs.version }}/cecil.phar | |
download-sha256: ${{ needs.build.outputs.shasum }} | |
commit-message: | | |
{{formulaName}} {{version}} | |
Created by https://github.com/mislav/bump-homebrew-formula-action | |
- name: Bump Beta Formula | |
if: "github.event.release.prerelease" | |
uses: mislav/bump-homebrew-formula-action@v3 | |
with: | |
formula-name: cecil-beta | |
formula-path: Formula/cecil-beta.rb | |
homebrew-tap: Cecilapp/homebrew-tap | |
base-branch: main | |
tag-name: ${{ needs.build.outputs.version }} | |
download-url: https://github.com/Cecilapp/Cecil/releases/download/${{ needs.build.outputs.version }}/cecil.phar | |
download-sha256: ${{ needs.build.outputs.shasum }} | |
commit-message: | | |
{{formulaName}} {{version}} | |
Created by https://github.com/mislav/bump-homebrew-formula-action |