From f5256d6973fc948e4c5e6c96a54674dc14b333bf Mon Sep 17 00:00:00 2001 From: Keith Solomon Date: Wed, 15 Apr 2026 09:09:43 -0500 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8feature:=20Add=20release=20action?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 68 +++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a6cf219 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,68 @@ +name: Release + +on: + push: + tags: + - 'v[0-9]*.[0-9]*' + +permissions: + contents: write + +jobs: + release: + name: Build & Release + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.2' + tools: composer + + - name: Install Composer dependencies (production only) + run: composer install --no-dev --optimize-autoloader --prefer-dist + + - name: Extract version + id: version + run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT" + + - name: Stage plugin files + run: | + mkdir -p /tmp/logo-soup + + # Core files + cp logo-soup.php /tmp/logo-soup/ + cp uninstall.php /tmp/logo-soup/ + cp README.md /tmp/logo-soup/ + cp readme.txt /tmp/logo-soup/ + cp CHANGELOG.md /tmp/logo-soup/ + cp LICENSE /tmp/logo-soup/ + + # Required directories + cp -r src /tmp/logo-soup/ + cp -r blocks /tmp/logo-soup/ + cp -r vendor /tmp/logo-soup/ + + # Optional directories (included when present) + [ -d assets ] && cp -r assets /tmp/logo-soup/ || true + [ -d languages ] && cp -r languages /tmp/logo-soup/ || true + + - name: Create zip + id: zip + run: | + cd /tmp + zip -r "logo-soup-v${{ steps.version.outputs.version }}.zip" logo-soup/ + echo "zip_path=/tmp/logo-soup-v${{ steps.version.outputs.version }}.zip" >> "$GITHUB_OUTPUT" + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + name: ${{ github.ref_name }} + body_path: CHANGELOG.md + files: ${{ steps.zip.outputs.zip_path }} + draft: false + prerelease: false