You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
elif echo "$status_output" | grep -Eq "Mesh is currently building|Your mesh is being provisioned.|Currently provisioning your mesh|Wait a few minutes and try again.|Unable to get mesh status"; then
176
188
echo "Mesh is currently building. Waiting 10 seconds before next check."
177
189
sleep 10
190
+
elif echo "$status_output" | grep -F "is not a aio command" >/dev/null; then
191
+
echo "API Mesh plugin not available. Failing explicitly."
192
+
exit 1
178
193
else
179
194
echo "Unexpected status output. Treating as failure."
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,3 +20,8 @@ All notable changes to this project will be documented in this file. The format
20
20
## [1.0.0] - 2025-11-19
21
21
### Added
22
22
- Initial Adobe API Mesh CI/CD template with a GitHub Actions workflow for staging/production deployments, README-based setup guidance, and secret validation.
Copy file name to clipboardExpand all lines: README.md
+68Lines changed: 68 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -69,6 +69,74 @@ If these variables are present, the workflow writes them to `.env` before runnin
69
69
70
70
---
71
71
72
+
### Runner image requirements
73
+
This template is designed to run the deploy workflow inside a lightweight Docker image that already contains Node.js 20.x and the Adobe AIO CLI, but does not bake in the API Mesh plugin. The plugin is installed on each run inside the GitHub Actions job so that it is always available under the correct `$HOME` and CLI config scope.
#### Why the API Mesh plugin is installed in the runner
116
+
The API Mesh plugin (`@adobe/aio-cli-plugin-api-mesh`) is not installed in the Docker image. Instead, the workflow installs it inside the job, for example:
- AIO plugins are resolved per user via the CLI config directory under `$HOME` (for example `~/.config/@adobe/aio`), not from a global shared path.
125
+
- In GitHub container jobs, the runner forcibly sets `HOME=/github/home`, which is different from the `HOME` used at image build time (typically `/root`).
126
+
- If the plugin is only installed during `docker build`, it ends up wired to the build-time home and config; when the job runs with `HOME=/github/home`, `aio` does not see those plugins and `aio api-mesh:*` commands fail.
127
+
128
+
By installing `@adobe/aio-cli-plugin-api-mesh` inside the GitHub Actions job (with the final `$HOME` already set by the runner), the CLI always discovers the plugin correctly, regardless of how the container image was built.
129
+
130
+
**If you do not have such a runner image, use the 1.x version of this template, where:**
131
+
132
+
- The job runs directly on `ubuntu-latest` (no `container`: stanza).
133
+
-`aio` and the API Mesh plugin are installed inside the workflow steps (for example using `adobe/aio-cli-setup-action` plus an explicit `aio plugins:install @adobe/aio-cli-plugin-api-mesh`).
134
+
135
+
In short:
136
+
137
+
- 2.x template – requires a prebuilt runner image with `aio`; no CLI installation steps in the workflow.
138
+
- 1.x template – no custom image required; CLI and plugin are installed at runtime in the job, which is slower but does not depend on Docker image management.
139
+
72
140
## Quick Start
73
141
74
142
1.**Fork this repo** or use it as a template inside your organization.
0 commit comments