Update CI
CI / php (push) Successful in 1m1s
CI / Tier 2 — Magento + nginx + holesail (push) Failing after 30s

This commit is contained in:
2026-04-01 21:19:16 -05:00
parent 84e6b340b5
commit 567df1b3ba
3 changed files with 28 additions and 5 deletions
+5 -2
View File
@@ -1,5 +1,8 @@
# Full-stack parity harness for MageSail integration tests (Tier 2). See docs/ci-full-stack.md.
# From repo root: docker compose -f docker/integration/docker-compose.yml up -d --build
#
# Bind mount: set MAGE_ROOT to the absolute path of the MageSail repository root (scripts/ci-integration.sh
# does this). If unset, ../.. is resolved from this files directory (docker/integration → repo root).
# See docs/ci-full-stack.md if /workspace/scripts/... is missing inside the container.
services:
db:
@@ -110,7 +113,7 @@ services:
RABBITMQ_PASSWORD: ${RABBITMQ_PASSWORD:-rabbitmq_ci}
RABBITMQ_VHOST: ${RABBITMQ_VHOST:-magento_ci}
volumes:
- ../..:/workspace
- ${MAGE_ROOT:-../..}:/workspace
depends_on:
db:
condition: service_healthy
+8 -2
View File
@@ -63,15 +63,20 @@ export COMPOSER_AUTH='{"http-basic":{"repo.magento.com":{"username":"…","passw
./scripts/ci-integration.sh
```
Or step-by-step:
Or step-by-step (from repo root; **`MAGE_ROOT` must be the absolute path to this repository** so `/workspace` in the container matches your tree):
```bash
export MAGE_ROOT="$(pwd)"
export COMPOSER_AUTH='{"http-basic":{"repo.magento.com":{"username":"…","password":"…"}}}'
docker compose -f docker/integration/docker-compose.yml build magento
docker compose -f docker/integration/docker-compose.yml up -d
docker compose -f docker/integration/docker-compose.yml exec -e COMPOSER_AUTH -e WORKSPACE=/workspace magento \
docker compose -f docker/integration/docker-compose.yml exec -T \
-e COMPOSER_AUTH -e WORKSPACE=/workspace magento \
bash /workspace/scripts/integration/run-inside-container.sh
```
If you see **No such file** for that script, your bind mount is wrong: set `export MAGE_ROOT=/absolute/path/to/MageSail` and run `docker compose ... down` then `up -d` again.
First `setup:install` can take **1530+ minutes**; subsequent runs reuse `integration/magento/vendor` and `app/etc/config.php` on the mounted workspace.
## Parity checklist vs server `env.php`
@@ -110,6 +115,7 @@ Groups: `magesail_integration`, `magesail_nginx`, `magesail_tunnel`, `magesail_e
| `nginx -t` fails | Map file missing or bad syntax; confirm `/usr/sbin/nginx` in container |
| OpenSearch OOM | Lower heap in compose or give runner more RAM |
| `mount ... nginx-ci.conf ... not a directory` | Older compose used a **file** bind; Docker may have created a **directory** named `nginx-ci.conf`. Remove it (`rm -rf docker/integration/nginx-ci.conf`), pull latest compose (uses [`docker/integration/web-nginx/`](../docker/integration/web-nginx/) mounted on `/etc/nginx/conf.d`), then `docker compose up` again |
| `/workspace/scripts/integration/run-inside-container.sh: No such file` | Wrong bind mount: export **`MAGE_ROOT`** to the **absolute** MageSail repo root before `compose up` (see [`scripts/ci-integration.sh`](../scripts/ci-integration.sh)), then `docker compose ... down && up -d`. Or your checkout is missing `scripts/integration/` (pull latest). |
## Further reading
+15 -1
View File
@@ -8,6 +8,13 @@ cd "$ROOT"
COMPOSE_FILE="${COMPOSE_FILE:-docker/integration/docker-compose.yml}"
export COMPOSE_PROJECT_NAME="${COMPOSE_PROJECT_NAME:-magesail_ci}"
# Absolute mount avoids “No such file” for /workspace/scripts/... when Compose resolves ../.. from the wrong base.
export MAGE_ROOT="${MAGE_ROOT:-$ROOT}"
if [ ! -f "${ROOT}/scripts/integration/run-inside-container.sh" ]; then
echo "ERROR: missing ${ROOT}/scripts/integration/run-inside-container.sh (wrong repo or incomplete checkout)." >&2
exit 1
fi
echo "::group::Docker compose build & up"
docker compose -f "$COMPOSE_FILE" build magento
@@ -20,5 +27,12 @@ docker compose -f "$COMPOSE_FILE" exec -T \
-e COMPOSER_AUTH="${COMPOSER_AUTH:-}" \
-e WORKSPACE=/workspace \
magento \
bash /workspace/scripts/integration/run-inside-container.sh
bash -c 'set -euo pipefail
if [ ! -f /workspace/scripts/integration/run-inside-container.sh ]; then
echo "ERROR: /workspace/scripts/integration/run-inside-container.sh not found inside the container." >&2
echo "MAGE_ROOT on host should be the MageSail repo root (export MAGE_ROOT before compose). Listing /workspace:" >&2
ls -la /workspace 2>&1 || true
exit 1
fi
exec bash /workspace/scripts/integration/run-inside-container.sh'
echo "::endgroup::"