Overview

When RESULT_FILE is set, migetpacks writes a JSON file containing build metadata after every build. This file is used by post-build steps (e.g., deployment pipelines, notification services) to determine build status and access image information.
The builder always exits with code 0 to ensure post-build steps (like Shipwright callbacks or sidecar containers) always execute. Check the status field in the result JSON to determine if the build actually succeeded or failed.

Schema

images

For Docker Compose builds, multiple images are listed:

processes

Parsed from the application’s Procfile:
  • web — the primary web process (from RUN_COMMAND, Procfile web:, or language default)
  • release — one-time release command (e.g., database migrations)
  • workers — background worker processes (all non-web, non-release Procfile entries)

env

Environment variables defined in app.json:
  • Variables with "generator": "secret" have auto-generated values
  • Variables with "value": "..." use the specified value
  • Variables with "required": true are null (must be provided at deploy time)

formation

Process configuration from app.json:

scripts

Deployment scripts from app.json:

addons

Service dependencies from app.json:
  • plan — the addon plan identifier
  • as — attachment alias (overrides config var prefix), or null
  • options — provider-specific options object, or null

_shell

Indicates whether the runtime container has a shell available:
When _shell is false (DHI/distroless images), deployment systems should:
  • Use exec format for commands (no /bin/sh -c wrapper)
  • Pre-expand shell variables like ${PORT:-5000}
  • Avoid relying on shebangs in scripts

Success Example

A complete result file for a successful Ruby build:

Failure Example

A result file for a failed build:

Usage

Reading in Shell Scripts

Reading in Python

Shipwright Post-Build Step