wp-git-sync/.github/workflows/build-plugin-zip.yml
2026-02-09 11:40:52 +00:00

59 lines
1.8 KiB
YAML

name: Build Plugin ZIP
on:
workflow_dispatch:
push:
tags:
- "v*"
permissions:
contents: read
jobs:
package:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP and Composer
uses: shivammathur/setup-php@v2
with:
php-version: "8.2"
tools: composer:v2
- name: Build ZIP
id: build
run: |
set -euo pipefail
PLUGIN_SLUG="$(php -r '
$json = json_decode(file_get_contents($argv[1]), true);
if (!is_array($json) || empty($json["slug"]) || !is_string($json["slug"])) {
fwrite(STDERR, "packages.json is missing a valid slug string\n");
exit(1);
}
echo $json["slug"];
' "$GITHUB_WORKSPACE/packages.json")"
PLUGIN_VERSION="$(php -r '
$json = json_decode(file_get_contents($argv[1]), true);
if (!is_array($json) || empty($json["version"]) || !is_string($json["version"])) {
fwrite(STDERR, "packages.json is missing a valid version string\n");
exit(1);
}
echo $json["version"];
' "$GITHUB_WORKSPACE/packages.json")"
ZIP_PATH="$GITHUB_WORKSPACE/dist/${PLUGIN_SLUG}-${PLUGIN_VERSION}.zip"
bash "$GITHUB_WORKSPACE/scripts/build-zip.sh"
echo "plugin_slug=$PLUGIN_SLUG" >> "$GITHUB_OUTPUT"
echo "plugin_version=$PLUGIN_VERSION" >> "$GITHUB_OUTPUT"
echo "zip_path=$ZIP_PATH" >> "$GITHUB_OUTPUT"
- name: Upload ZIP Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build.outputs.plugin_slug }}-${{ steps.build.outputs.plugin_version }}-zip
path: ${{ steps.build.outputs.zip_path }}
if-no-files-found: error