feat(ci): switch release pipeline to homeboy-native release workflow#417
Merged
Conversation
Replace the standalone release-asset.yml workflow with the homeboy continuous-release pattern used by homeboy-action and homeboy-extensions: on every push to main, check for releasable conventional commits, then run `homeboy release` to bump the version, generate the changelog, tag, push, create the GitHub Release, build the vendor-bundled ZIP via the wordpress extension's release.package action, and upload it via release.publish. The homeboy-extensions wordpress extension now provides both actions (release.package and release.publish), so we no longer need a parallel custom workflow that rebuilds the ZIP after the release event fires. The homeboy pipeline handles packaging and asset upload as part of its standard step graph (version → commit → package → git.tag → git.push → github.release → publish.wordpress). Add release_latest_branch: "release-latest" to the wordpress extension config so release.publish also mirrors the unzipped tree to a CORS-friendly branch after the release-asset upload. This unblocks WordPress Playground blueprints that hit CORS on the GitHub release-asset CDN — the world-of-wordpress blueprint can switch from releases/latest/download/data-machine-code.zip to git:directory against release-latest once the next release has populated the branch. Removes .github/workflows/release-asset.yml because the homeboy pipeline now owns ZIP production and upload. Manual asset rebuilds remain available via the workflow_dispatch on the new release.yml.
Contributor
Homeboy Results —
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replace the standalone
release-asset.ymlworkflow with the homeboy continuous-release pattern. On every push tomain, check for releasable conventional commits and runhomeboy releaseif any exist. The homeboy release pipeline now handles ZIP packaging and GitHub asset upload natively because the wordpress extension providesrelease.packageandrelease.publishactions (Extra-Chill/homeboy-extensions#658).Before this change
Three problems:
homeboy releaselocally to bump version, tag, push.release-asset.ymlrebuilds the ZIP using its own composer/npm install + rsync rules, separate from anything homeboy knows about. State drift between developer builds and release builds.homeboy releasefailures andrelease-asset.ymlfailures have different surfaces.After this change
Single pipeline, single failure mode, single source of truth for what a release ZIP contains.
The release-latest branch
homeboy.jsondeclaresrelease_latest_branch: "release-latest"in the wordpress extension config. After the GitHub release-asset upload completes, the wordpress extension'srelease.publishaction also force-pushes the unzipped vendor-bundled tree torefs/heads/release-latest. WordPress Playground blueprints can then install via:{ "resource": "git:directory", "url": "https://github.com/Extra-Chill/data-machine-code", "ref": "release-latest", "refType": "branch" }This bypasses the CORS failure that has been preventing Data Machine Code from installing in browser-based Playground (GitHub release-asset URLs 302 to S3 buckets that don't send
Access-Control-Allow-Origin). The world-of-wordpress blueprint will switch to this resource shape once DMC has released once and therelease-latestbranch exists.Validation
release.ymlis yaml-valid and structurally identical to the proven workflow in homeboy-action (the same workflow that has been releasing homeboy-action on every push to main for months).homeboy.jsonextensions.wordpress block follows the schema established in the wordpress extension manifest.release-asset.ymlwas solely responsible for ZIP upload onrelease:published. The homeboy pipeline now owns that step (verified against homeboy-extensions release pipeline running on every push), so deleting it is safe.workflow_dispatchonrelease.yml.What happens when this merges
The merge commit's message is
feat:(this change), so the next push to main triggers a release. Predicted version bump:v0.44.0feat:since last tag)v0.45.0The release will:
data-machine-code.phpversion targetsv0.45.0tagbuild/data-machine-code.ziprelease-latestDependencies
AI assistance