Release and deployment model
Source of truth
The bcgov/bcew-monorepo repository (this monorepo) is the source of truth for code, history, and automation. Day-to-day development happens on branches; releases are cut from tagged commits.
How consumers get packages today
- A maintainer triggers the release workflow, providing a namespaced tag (see Versioning) as an input:
<nx-project-name>/v<semver>. tag.ymlbuilds the project, attaches a release zip named<project>-<version>.zipto a GitHub Release on this repository, and updates the Composer package indexpackages.jsonpublished to GitHub Pages athttps://bcgov.github.io/bcew-monorepo/.- Downstream WordPress stacks add the Composer repository URL and
requirethe package by name and version.
The packages.json entries point dist.url at the release asset on this GitHub repo (update-packages.php uses github.com/<repository>/releases/download/...).
Manual vs automated steps
| Step | Usually |
|---|---|
| Code review and merge | Manual |
| Choosing version and pushing tag | Manual (maintainer) |
Build, zip, GitHub Release, packages.json deploy | Automated in tag.yml |
Composer consumer configuration
Example (adjust package name and version):
json
{
"repositories": [
{
"type": "composer",
"url": "https://bcgov.github.io/bcew-monorepo"
}
],
"require": {
"bcgov-plugin/bcew-blocks": "^1.0"
}
}