feat: pre-build tessellation base image to speed up E2E CI (~40% faster)#105
Closed
ottobot-ai wants to merge 1 commit into
Closed
feat: pre-build tessellation base image to speed up E2E CI (~40% faster)#105ottobot-ai wants to merge 1 commit into
ottobot-ai wants to merge 1 commit into
Conversation
Implements spec from PR #101. Reduces E2E CI time from ~16 min to ~8-10 min by pre-building tessellation GL0/GL1 JARs and using SKIP_ASSEMBLY=true. Changes: - New .github/workflows/build-tessellation-base.yml Builds tessellation assembly JARs and publishes to ghcr.io/ottobot-ai/tessellation-base:v{VERSION}. Triggers on push to paths: build.sbt, project/**, patches/, Dockerfile. Also supports manual dispatch. - New tessellation-base.Dockerfile Minimal alpine image containing only GL0/GL1 assembly JARs. ML0/CL1/DL1 (OttoChain) intentionally excluded — built per-PR from source. - Updated .github/workflows/e2e.yml Pulls pre-built base image, extracts JARs via docker create+cp to tessellation target directories, then runs just up with SKIP_ASSEMBLY=true PUBLISH=false. - Added modules/ci with TDD tests (43 tests from PR #102). File-content tests now pass (workflow/Dockerfile structure verified). Runtime tests (CI timing, actual image pull) remain in TDD red phase until image is built and pushed to GHCR. Trello: https://trello.com/c/69967833a7f71628ede9e523 Spec: PR #101 Tests: PR #102 (test/tessellation-base-image-tdd)
Collaborator
Author
|
Moving to feature branch |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pre-builds Tessellation GL0/GL1 JARs into a Docker image to reduce E2E CI time from ~16 min to ~8-10 min (~40% improvement).
Implements spec from PR #101. TDD tests from PR #102.
Changes
New:
.github/workflows/build-tessellation-base.ymlBuilds tessellation dagL0/dagL1 assembly JARs (with patches), publishes
ghcr.io/ottobot-ai/tessellation-base:v4.0.0-rc.2+:latest. Triggers on push tobuild.sbt,project/**,e2e-test/patches/**,tessellation-base.Dockerfile. Also supports manualworkflow_dispatch.New:
tessellation-base.DockerfileMinimal
alpineimage containing only GL0/GL1 assembly JARs.ml0/cl1/dl1intentionally excluded — they change every PR and are built from source.Updated:
.github/workflows/e2e.ymlPulls pre-built base image, extracts JARs via
docker create + docker cpto tessellation target dirs, then runsjust upwithSKIP_ASSEMBLY=true PUBLISH=false. Tessellation source still cloned (needed for metagraph build context). Metagraph JARs still built from source.New:
modules/ci/43 TDD tests from PR #102 (test/tessellation-base-image-tdd). File-content tests (workflow structure, Dockerfile checks) now PASS. Runtime tests (CI timing, GHCR image availability) remain red until image is first published.
Acceptance Criteria
ghcr.io/ottobot-ai/tessellation-base:v4.0.0-rc.2SKIP_ASSEMBLY=true+PUBLISH=falsein e2e.ymldocker create + docker cp--metagraphflag unchanged)Action Required After Merge
Trigger
build-tessellation-base.ymlmanually (workflow_dispatch) to publish the initial image to GHCR. All subsequent E2E runs will then use the pre-built image automatically.Trello
📋 Pre-build tessellation/ottochain Docker images → Code Review
Related PRs