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 }}