replace the tail --pid ... -f buildx log streaming wrapper with the earlier polling-based heartbeat loop
keep incremental log flushing and explicit non-zero exit reporting for both API and Web image stages
avoid the durable-task compatibility issue that can stop touching the Jenkins wrapper log during long multi-arch pushes
Why
The failed run kept printing heartbeats until the docker buildx build --push tail-wrapper phase, then Jenkins reported:
wrapper script does not seem to be touching the log file
This points to the shell wrapper / durable-task interaction, not the image build definition itself.
## Summary
- replace the `tail --pid ... -f` buildx log streaming wrapper with the earlier polling-based heartbeat loop
- keep incremental log flushing and explicit non-zero exit reporting for both API and Web image stages
- avoid the durable-task compatibility issue that can stop touching the Jenkins wrapper log during long multi-arch pushes
## Why
The failed run kept printing heartbeats until the `docker buildx build --push` tail-wrapper phase, then Jenkins reported:
- `wrapper script does not seem to be touching the log file`
This points to the shell wrapper / durable-task interaction, not the image build definition itself.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
tail --pid ... -fbuildx log streaming wrapper with the earlier polling-based heartbeat loopWhy
The failed run kept printing heartbeats until the
docker buildx build --pushtail-wrapper phase, then Jenkins reported:wrapper script does not seem to be touching the log fileThis points to the shell wrapper / durable-task interaction, not the image build definition itself.