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_ENV echo "Building extension release for version: $VERSION" - name: Build Production Extension ZIP run: | ZIP_NAME="brightwheel-exporter-v${{ env.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_ENV echo "✅ Package contents verified:" unzip -l "$ZIP_NAME" - name: Upload ZIP to GitHub Release Assets uses: softprops/action-gh-release@v2 with: files: ${{ env.ZIP_FILE }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}