name: Build & Package Extension Release on: release: types: [published] push: tags: - 'v*' workflow_dispatch: permissions: contents: write jobs: build-release: name: Build ZIP & Attach to GitHub Release runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: '20' - name: Read Extension Version id: version run: | VERSION=$(node -p "require('./manifest.json').version") echo "ext_version=$VERSION" >> "$GITHUB_OUTPUT" echo "Building extension release for version: $VERSION" - name: Build Production Extension ZIP id: package run: | ZIP_NAME="brightwheel-exporter-v${{ steps.version.outputs.ext_version }}.zip" echo "📦 Packaging $ZIP_NAME..." zip -r "$ZIP_NAME" . \ -x "*.git*" \ -x ".githooks/*" \ -x ".github/*" \ -x "emmy/*" \ -x "exports/*" \ -x "data/*" \ -x "test_data/*" \ -x "screenshots/*" \ -x "*.md" \ -x "LICENSE" \ -x "*.zip" echo "zip_file=$ZIP_NAME" >> "$GITHUB_OUTPUT" echo "✅ Package contents verified:" unzip -l "$ZIP_NAME" - name: Upload ZIP to GitHub Release Assets uses: softprops/action-gh-release@v2 with: files: ${{ steps.package.outputs.zip_file }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}