Files
mivo/.github/workflows/release.yml

77 lines
2.2 KiB
YAML

name: Create Release
on:
push:
tags:
- 'v*.*.*'
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: mbstring, xml, ctype, iconv, sqlite3, openssl
coverage: none
- name: Get version from tag
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Create Release Directory
run: |
mkdir release_temp
# Export source using git archive (respects .gitattributes)
git archive --format=tar HEAD | tar -x -C release_temp
- name: Install Development Dependencies (for Build & AI)
run: npm install
- name: Build Localized Assets & Editor Bundle
run: |
npm run sync:assets
npm run build:editor
- name: Generate AI Release Notes
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
run: |
node .github/scripts/generate-release-notes.js ${{ github.ref_name }}
- name: Install Production Dependencies
run: |
cd release_temp
composer install --no-dev --optimize-autoloader --no-interaction --ignore-platform-reqs
- name: Copy Build Artifacts to Release
run: |
cp -r public/assets/vendor/ release_temp/public/assets/
mkdir -p release_temp/public/assets/js/vendor/
cp public/assets/js/vendor/editor.bundle.js release_temp/public/assets/js/vendor/
- name: Build Zip Artifact
run: |
cd release_temp
zip -r ../mivo-v${{ steps.get_version.outputs.VERSION }}.zip .
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
files: mivo-v${{ steps.get_version.outputs.VERSION }}.zip
body_path: .github/release_notes.md
generate_release_notes: false
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}