Skip to content

optimize: Docker Build Times - #23420

Open
kalverra wants to merge 2 commits into
DX-4988/cre-startup-speedupfrom
DX-4988/docker-cache-fix
Open

optimize: Docker Build Times#23420
kalverra wants to merge 2 commits into
DX-4988/cre-startup-speedupfrom
DX-4988/docker-cache-fix

Conversation

@kalverra

Copy link
Copy Markdown
Collaborator
  • Increase concurrency on loopinstall builds in CI
  • Fix cache-map

Stack created with GitHub Stacks CLIGive Feedback 💬

@github-actions

Copy link
Copy Markdown
Contributor

✅ No conflicts with other open PRs targeting develop

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Risk Rating: MEDIUM

This PR targets faster Docker image builds in CI by increasing loopinstall parallelism for remote plugin installation and adjusting the CI cache-map to persist the Go build cache more directly.

Changes:

  • Add CL_LOOPINSTALL_CONCURRENCY as a configurable knob (Make + Docker build args/env) and wire it into go tool loopinstall.
  • Increase default concurrency used in Docker builds (default build arg set to 16).
  • Update the integration tests workflow cache-map entry for the Go build cache.

Areas needing scrupulous human review:

  • .github/workflows/integration-tests.yml cache-map format and key naming (depends on behavior/schema of the external ctf-build-image action).

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
plugins/chainlink.Dockerfile Adds a build arg/env for CL_LOOPINSTALL_CONCURRENCY and passes it into plugin install make targets.
GNUmakefile Introduces CL_LOOPINSTALL_CONCURRENCY and uses it for go tool loopinstall concurrency.
core/chainlink.Dockerfile Mirrors the plugin Dockerfile changes to control loopinstall concurrency during image builds.
.github/workflows/integration-tests.yml Changes the build step cache-map to target /root/.cache/go-build for the Go build cache.
Suppressed comments (2)

GNUmakefile:104

  • In the output-dir branch, $(LOOPINSTALL_TESTING_ARGS) already includes the --output-installation-artifacts $(CL_LOOPINSTALL_OUTPUT_DIR)/testing.json flag/value, so passing it again explicitly is redundant.
install-plugins-testing: ## Build & install testing only LOOPP binaries (plugins).
	if [ -n "$(CL_LOOPINSTALL_OUTPUT_DIR)" ]; then \
		GOPRIVATE=github.com/smartcontractkit/* go tool loopinstall --concurrency $(CL_LOOPINSTALL_CONCURRENCY) $(LOOPINSTALL_TESTING_ARGS) --output-installation-artifacts $(CL_LOOPINSTALL_OUTPUT_DIR)/testing.json ./plugins/plugins.testing.yaml; \
	else \

GNUmakefile:96

  • In the output-dir branch, $(LOOPINSTALL_PRIVATE_ARGS) already includes the --output-installation-artifacts $(CL_LOOPINSTALL_OUTPUT_DIR)/private.json flag/value, so the explicit --output-installation-artifacts .../private.json here is redundant.
	if [ -n "$(CL_LOOPINSTALL_OUTPUT_DIR)" ]; then \
		GOPRIVATE=github.com/smartcontractkit/* go tool loopinstall --concurrency $(CL_LOOPINSTALL_CONCURRENCY) $(LOOPINSTALL_PRIVATE_ARGS) --output-installation-artifacts $(CL_LOOPINSTALL_OUTPUT_DIR)/private.json ./plugins/plugins.private.yaml; \
	else \

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread GNUmakefile
@kalverra
kalverra marked this pull request as ready for review August 14, 2026 20:48
@kalverra
kalverra requested review from a team as code owners August 14, 2026 20:48
@trunk-io

trunk-io Bot commented Aug 14, 2026

Copy link
Copy Markdown

Static BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

Comment thread pr-23420.md

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Was this an accidentally committed file?

@cl-sonarqube-production

Copy link
Copy Markdown

Quality Gate failed Quality Gate failed

Failed conditions
12 New Major Issues (required ≤ 5)
28.44% Technical Debt Ratio on New Code (required ≤ 4%)
D Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarQube

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE SonarQube for IDE

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.

3 participants