Support pre-built Docker images in dependency spec to avoid redundant builds
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 58/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- docker, github-actions, shell
- Ambito
- build-system, ci-cd, devops
Direzione di ricerca
Inizia nel workflow riutilizzabile build.yml, in particolare nello stage build-dep e nella gestione del relativo JSON delle dipendenze. Traccia il modo in cui le dipendenze dal codice sorgente vengono clonate, compilate e passate all’immagine quickstart finale, quindi verifica che una dipendenza da immagine utilizzi lo stesso meccanismo COPY --from=, mentre le dipendenze basate sul codice sorgente rimangano invariate. Convalida entrambe le forme di dipendenza tramite il workflow.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
The reusable build.yml workflow currently only accepts repo + ref for each dependency, which means every caller must build their dependency from source. For projects that already build a release binary in their own CI pipeline, this results in a redundant ~9 minute build.
For example, in stellar-experimental/henyey, our CI workflow already produces a release binary via cargo build --release. The quickstart workflow then clones the same commit and builds it again from scratch. This makes the quickstart workflow take ~19 minutes when it could take ~10 minutes.
Proposal
Add an optional image field to the dependency JSON spec. When image is provided, the build-dep stage would pull the pre-built Docker image instead of cloning and building from source.
Current usage (build from source):
{
"name": "core",
"repo": "stellar-experimental/henyey",
"ref": "abc123"
}
Proposed addition (pre-built image):
{
"name": "core",
"image": "ghcr.io/stellar-experimental/henyey-core:abc123"
}
When image is set, the workflow would:
- Skip the clone + build step for that dependency
- Pull the image from the specified registry
- Use it in the final quickstart image build via the same
COPY --from=mechanism
When image is not set, behavior is unchanged (build from source as today).
Expected Impact
- Callers that already build their binary in CI can cut ~9 minutes off their quickstart workflow
- No change for callers that don't use this field
- The final quickstart image is identical either way — only the source of the dependency image changes
Alternatives Considered
- Callers duplicate the test orchestration locally: Works but duplicates the test matrix logic that
build.ymlalready handles well - Cache-only approach: The existing cache helps on repeat runs of the same SHA, but doesn't help when the same SHA is already built by the caller's own CI
- Lingua principale
- Shell
- Stelle
- 224
- Fork
- 237
- Merge medio
- 1g 16m
- PR unite (30g)
- 8
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di stellar/quickstart
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
stellar/quickstart#932 · 16 commenti · 2 reazioni ·
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
stellar/quickstart#911 · 2 commenti ·
-
feature request
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
stellar/quickstart#907 · 1 commento ·
-
feature request
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
stellar/quickstart#906 · 3 commenti ·
-
feature request
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
stellar/quickstart#900 · 2 commenti ·
Tutte le issue di stellar/quickstart
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
alunduil/alunduil-infrastructure#629 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
duckdb/duckdb-skills#19 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
YosysHQ/oss-cad-suite-build#216 ·