Skip to content

ci: speed up build#615

Draft
janishorsts wants to merge 9 commits into
mainfrom
ci-speed-up-build
Draft

ci: speed up build#615
janishorsts wants to merge 9 commits into
mainfrom
ci-speed-up-build

Conversation

@janishorsts

@janishorsts janishorsts commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

It refactors our GitHub Actions CI pipeline to eliminate redundant compilation and bootstrap steps, speed up overall build run times, and make better use of the runner's EarthBuild layer caching.

WARNING: This PR requires the change to "Protect default branch" ruleset.

Metrics

Total time:

  • Before: ~24 minutes (3 parallel pipelines compiling standard and next Earth binaries independently, taking ~8 minutes each).
  • After: ~13 minutes (1 consolidated compilation phase with shared caching, followed by fast-failing engine bootstrap checks before commencing all the high-level tests).

Reduces total execution time by 10 minutes.

Before

graph TD
    A[Code Commit / PR] --> B[Fast Check: Lint, Unit, Fuzz]
    B --> C[Docker Pipeline]
    B --> D[Podman Pipeline]
    B --> E[Next Pipeline]
    
    subgraph Docker Pipeline
        C --> C_Build["Build Earthly (Docker tag) [~8 min]"]
        C_Build --> C_Tests["Run Docker Test Matrix"]
    end
    subgraph Podman Pipeline
        D --> D_Build["Build Earthly (Podman tag) [~8 min]"]
        D_Build --> D_Tests["Run Podman Test Matrix"]
    end
    subgraph Next Pipeline
        E --> E_Build["Build Earthly (Next tag) [~8 min]"]
        E_Build --> E_Tests["Run Next Test Matrix"]
    end
Loading
Screenshot 2026-06-29 at 16 43 02

After

graph TD
    A[Code Commit / PR] --> B[Fast Check & Build: Lint, Unit, Fuzz, Compile]
    
    subgraph Fast Check & Build Runner
        B --> B_BuildStd["Build Standard Earthly [Shared Layer Cache]"]
        B --> B_BuildNext["Build Next Earthly [Shared Layer Cache]"]
    end
    B_BuildStd --> C[Docker Pipeline]
    B_BuildStd --> D[Podman Pipeline]
    B_BuildNext --> E[Next Pipeline]
    subgraph Docker Pipeline Runner
        C --> C_TestBoot["docker-bootstrap-test [Fast check]"]
        C_TestBoot --> C_Tests["Run Docker Test Matrix"]
    end
    subgraph Podman Pipeline Runner
        D --> D_TestBoot["podman-bootstrap-test [Fast check]"]
        D_TestBoot --> D_Tests["Run Podman Test Matrix"]
    end
    subgraph Next Pipeline Runner
        E --> E_TestBoot["next-bootstrap-test [Fast check]"]
        E_TestBoot --> E_Tests["Run Next Test Matrix"]
    end
Loading
Screenshot 2026-06-30 at 13 27 31

@janishorsts janishorsts self-assigned this Jun 29, 2026
@janishorsts janishorsts added the ai-assisted Authored with AI assistance label Jun 29, 2026
@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

🎉 Are we earthbuild yet?

Great progress! You've reduced "earthly" occurrences by 142 (2.66%)

📈 Overall Progress

Branch Total Count
main 5341
This PR 5199
Difference -142 (2.66%)

Keep up the great work migrating from Earthly to Earthbuild! 🚀

💡 Tips for finding more occurrences

Run locally to see detailed breakdown:

./.github/scripts/count-earthly.sh

Note that the goal is not to reach 0.
There is anticipated to be at least some occurences of earthly in the source code due to backwards compatibility with config files and language constructs.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request updates the GitHub Action setup in .github/actions/stage2-setup/action.yml by hardcoding the string 'docker' instead of using the dynamic inputs.BINARY input for both the artifact name and the TAG environment variable. There are no review comments, so we have no feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@janishorsts

Copy link
Copy Markdown
Collaborator Author

/gemini review

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request replaces the dynamic inputs.BINARY parameter with a hardcoded docker string in both the artifact download name and the image tag suffix within the stage 2 setup action. The reviewer notes that hardcoding docker reduces the action's reusability and flexibility, especially when running podman tests, and suggests using a fallback expression like ${{ inputs.ARTIFACT_SUFFIX || 'docker' }} instead.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread .github/actions/stage2-setup/action.yml Outdated
Comment thread .github/actions/stage2-setup/action.yml Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-assisted Authored with AI assistance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant