'Git checkout / shallow clone', 'docker-setup' => 'Builder host (Docker daemon)', 'docker-build' => 'Docker image build', 'docker-run' => 'Gradle pipeline (docker run)', ]; ?>
= build_status_icon($status) ?> Status: = h($status) ?> · Phase: = h($phase) ?> · = h($build['error_message']) ?>
Ecosystem health reports Docker: ok now. The log below is from this failed run — use Re-run (do not only refresh).
Failed at step: = h($stepLabels[$failedStep] ?? $failedStep) ?> — Re-run from failed skips earlier steps when artifacts allow (like CircleCI).
Shell into the CI container on the builder host (same idea as CircleCI “Rerun with SSH”). Stop ends the session.
ssh <user>@= h($builderHost) ?> docker exec -it = h($sshContainer) ?> bash
= h($build['dockerfile_version'] ?? '') ?>= h($build['git_ref'] ?? '—') ?>= h($build['git_sha'] ?? '—') ?>= h($params['gradle_task'] ?? '—') ?>= h((string) $v) ?>Snapshot stored with this build. New triggers use build.config.yml from the repo when present, otherwise a generated default.
= h($pipelineYaml) ?>
Live tail shows the last ~50 KB while running. Failed builds load the full log automatically. Per-step files (when present): docker-build.log, docker-run.log under this build’s artifact dir.