Skip to content

Trace build_provider_cmd phases in bridged Makefile template#2244

Merged
pose merged 1 commit into
masterfrom
expose-go-build-phases
May 18, 2026
Merged

Trace build_provider_cmd phases in bridged Makefile template#2244
pose merged 1 commit into
masterfrom
expose-go-build-phases

Conversation

@pose

@pose pose commented May 18, 2026

Copy link
Copy Markdown
Member

Summary

build_provider_cmd rendered as a single opaque ;-chained shell command, so a provider build logged one undifferentiated span with no signal for where time went across schema generation, module download, compilation, and linking.

This makes each phase observable in the job log:

  • set -x is prepended in both template branches, so every chained sub-command is traced with a timestamp. Language-agnostic; this is the only change non-Go buildProviderCmd overrides (e.g. eks, pulumiservice) receive.
  • The default branch splits go mod download into its own statement and adds -v to go build, so the module-fetch phase is distinct and per-package compilation is observable.

The rendered value still collapses to a single sh -c invocation with the same ;/&& joins as before — cosmetic multi-line via backslash continuations only. Error semantics are preserved: the final command still determines the recipe exit status, exactly as the previous single-line form (verified with make -n).

Scope is the base Makefile template plus the six bridged provider Makefiles that consume it (aws, cloudflare, docker, eks, pulumiservice, xyz). No native providers, workflows, or .ci-mgmt.yaml touched. make all passes locally: build, Go tests, deterministic regeneration of all 15 test providers, and actionlint.

What this enables

The downstream goal is to turn that opaque build span into a readable phase breakdown:

build-provider-breakdown

Part of #2218

@pose pose self-assigned this May 18, 2026
@pose pose requested review from a team May 18, 2026 09:39
@pose pose added this to the 0.138 milestone May 18, 2026
build_provider_cmd rendered as a single opaque ;-chained shell
command, so a provider build logged one undifferentiated span with
no signal for where time went across schema generation, module
download, compilation, and linking.

Prepend set -x in both template branches so each chained sub-command
is traced with a timestamp (language-agnostic; the only change non-Go
buildProviderCmd overrides receive). In the default branch, split
go mod download into its own statement and add -v to go build so the
module-fetch phase is distinct and per-package compilation is
observable.

The rendered value still collapses to a single sh -c invocation with
the same ;/&& joins as before (cosmetic multi-line via backslash
continuations). Error semantics are preserved: the final command
still determines the recipe exit status, exactly as the previous
single-line form.

Part of #2218

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@pose pose force-pushed the expose-go-build-phases branch from 99478a0 to 2d7f96e Compare May 18, 2026 09:55
@pose pose marked this pull request as ready for review May 18, 2026 09:56

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No actionable issues found.

Reviewed by Internal Trusted PR Reviewer

To install this agentic workflow, run

gh aw add pulumi-labs/gh-aw-internal/.github/workflows/gh-aw-pr-review.md@8a92f53fac170563f7727cacab2dbedb5d5b9e29

@pose pose added this pull request to the merge queue May 18, 2026
Merged via the queue into master with commit 4390fac May 18, 2026
14 checks passed
@pose pose deleted the expose-go-build-phases branch May 18, 2026 13:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants