Skip to main content

CI/CD Workflows for Composer-Based ACF Pro Projects

Composer-only install policy is safe when CI verifies lockfile, runtime APIs, and schema files on every release.

Practical Use Cases

Use Case 1: GitHub Actions gate for Composer and runtime checks

.github/workflows/acf-composer-gate.yml
name: acf-composer-gate

on: [pull_request]

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: composer install --no-interaction --prefer-dist
- name: Verify lock integrity
run: composer validate --strict
- name: Runtime ACF API check
run: wp eval 'var_export(function_exists("acf_get_field_groups")); echo PHP_EOL;'
Expected output
./composer.json is valid
true

Use Case 2: Release smoke script for plugin and schema parity

scripts/release-smoke-acf.sh
#!/usr/bin/env bash
set -euo pipefail

wp plugin get advanced-custom-fields-pro --fields=name,status,version
wp eval 'echo "groups=" . count(acf_get_field_groups()) . PHP_EOL;'
ls -1 wp-content/themes/your-theme/acf-json/*.json >/dev/null

echo "acf-release-smoke=pass"
Expected output
name status version
advanced-custom-fields-pro active 6.3.1
groups=18
acf-release-smoke=pass

Hands-On Practice

  1. Add Composer validation and runtime ACF checks to CI.
  2. Add release smoke script for plugin version + field group count.
  3. Fail deployment automatically when any ACF runtime check fails.

What's Next