From 5198a35d4db054ed5f9292fad33daf2eba117000 Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Mon, 12 Jan 2026 12:08:06 -0800 Subject: [PATCH 1/9] add galexie repo/ref and update images json to use sha attrib for quickstart callable workflow --- .github/workflows/test-workflow.yml | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-workflow.yml b/.github/workflows/test-workflow.yml index 7397b8c..17837a4 100644 --- a/.github/workflows/test-workflow.yml +++ b/.github/workflows/test-workflow.yml @@ -80,6 +80,17 @@ on: required: true type: string + galexie-repo: + description: "The git repo to use for galexie" + required: false + type: string + default: "stellar/stellar-galexie" + + galexie-ref: + description: "git ref of galexie to use" + required: true + type: string + horizon-ref: description: "git ref of stellar/stellar-horizon to use" required: true @@ -179,12 +190,13 @@ jobs: "protocol_version_default": ${{ inputs.protocol-version }} }, "deps": [ - { "name": "xdr", "repo": "stellar/rs-stellar-xdr", "ref": "${{ inputs.stellar-xdr-ref }}" }, - { "name": "core", "repo": "stellar/stellar-core", "ref": "${{ inputs.stellar-core-ref }}", "options": { "configure_flags": "--disable-tests" } }, - { "name": "rpc", "repo": "${{ inputs.stellar-rpc-repo }}", "ref": "${{ inputs.stellar-rpc-ref }}" }, - { "name": "horizon", "repo": "stellar/stellar-horizon", "ref": "${{ inputs.horizon-ref }}", "options": { "pkg": "github.com/stellar/stellar-horizon" } }, - { "name": "friendbot", "repo": "stellar/friendbot", "ref": "${{ inputs.friendbot-ref }}", "options": { "pkg": "github.com/stellar/friendbot" } }, - { "name": "lab", "repo": "stellar/laboratory", "ref": "${{ inputs.lab-ref }}" } + { "name": "xdr", "repo": "stellar/rs-stellar-xdr", "sha": "${{ inputs.stellar-xdr-ref }}" }, + { "name": "core", "repo": "stellar/stellar-core", "sha": "${{ inputs.stellar-core-ref }}", "options": { "configure_flags": "--disable-tests" } }, + { "name": "rpc", "repo": "${{ inputs.stellar-rpc-repo }}", "sha": "${{ inputs.stellar-rpc-ref }}" }, + { "name": "horizon", "repo": "stellar/stellar-horizon", "sha": "${{ inputs.horizon-ref }}", "options": { "pkg": "github.com/stellar/stellar-horizon" } }, + { "name": "friendbot", "repo": "stellar/friendbot", "sha": "${{ inputs.friendbot-ref }}", "options": { "pkg": "github.com/stellar/friendbot" } }, + { "name": "lab", "repo": "stellar/laboratory", "sha": "${{ inputs.lab-ref }}" }, + { "name": "galexie", "repo": "${{ inputs.galexie-repo }}", "sha": "${{ inputs.galexie-ref }}" } ], "additional-tests": [] } From 35561f457274dc33c89c762b1dc52cec62c49bfb Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Mon, 12 Jan 2026 12:47:48 -0800 Subject: [PATCH 2/9] revert images.json sha name usage back to ref --- .github/workflows/test-workflow.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test-workflow.yml b/.github/workflows/test-workflow.yml index 17837a4..4821c04 100644 --- a/.github/workflows/test-workflow.yml +++ b/.github/workflows/test-workflow.yml @@ -190,13 +190,13 @@ jobs: "protocol_version_default": ${{ inputs.protocol-version }} }, "deps": [ - { "name": "xdr", "repo": "stellar/rs-stellar-xdr", "sha": "${{ inputs.stellar-xdr-ref }}" }, - { "name": "core", "repo": "stellar/stellar-core", "sha": "${{ inputs.stellar-core-ref }}", "options": { "configure_flags": "--disable-tests" } }, - { "name": "rpc", "repo": "${{ inputs.stellar-rpc-repo }}", "sha": "${{ inputs.stellar-rpc-ref }}" }, - { "name": "horizon", "repo": "stellar/stellar-horizon", "sha": "${{ inputs.horizon-ref }}", "options": { "pkg": "github.com/stellar/stellar-horizon" } }, - { "name": "friendbot", "repo": "stellar/friendbot", "sha": "${{ inputs.friendbot-ref }}", "options": { "pkg": "github.com/stellar/friendbot" } }, - { "name": "lab", "repo": "stellar/laboratory", "sha": "${{ inputs.lab-ref }}" }, - { "name": "galexie", "repo": "${{ inputs.galexie-repo }}", "sha": "${{ inputs.galexie-ref }}" } + { "name": "xdr", "repo": "stellar/rs-stellar-xdr", "refg": "${{ inputs.stellar-xdr-ref }}" }, + { "name": "core", "repo": "stellar/stellar-core", "ref": "${{ inputs.stellar-core-ref }}", "options": { "configure_flags": "--disable-tests" } }, + { "name": "rpc", "repo": "${{ inputs.stellar-rpc-repo }}", "ref": "${{ inputs.stellar-rpc-ref }}" }, + { "name": "horizon", "repo": "stellar/stellar-horizon", "ref": "${{ inputs.horizon-ref }}", "options": { "pkg": "github.com/stellar/stellar-horizon" } }, + { "name": "friendbot", "repo": "stellar/friendbot", "ref": "${{ inputs.friendbot-ref }}", "options": { "pkg": "github.com/stellar/friendbot" } }, + { "name": "lab", "repo": "stellar/laboratory", "ref": "${{ inputs.lab-ref }}" }, + { "name": "galexie", "repo": "${{ inputs.galexie-repo }}", "ref": "${{ inputs.galexie-ref }}" } ], "additional-tests": [] } From 7f342f72fe1fff62cd28369b9d1d9a1c0e8e35e1 Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Mon, 12 Jan 2026 12:59:02 -0800 Subject: [PATCH 3/9] fix type on images.json ref --- .github/workflows/test-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-workflow.yml b/.github/workflows/test-workflow.yml index 4821c04..81d5da4 100644 --- a/.github/workflows/test-workflow.yml +++ b/.github/workflows/test-workflow.yml @@ -190,7 +190,7 @@ jobs: "protocol_version_default": ${{ inputs.protocol-version }} }, "deps": [ - { "name": "xdr", "repo": "stellar/rs-stellar-xdr", "refg": "${{ inputs.stellar-xdr-ref }}" }, + { "name": "xdr", "repo": "stellar/rs-stellar-xdr", "ref": "${{ inputs.stellar-xdr-ref }}" }, { "name": "core", "repo": "stellar/stellar-core", "ref": "${{ inputs.stellar-core-ref }}", "options": { "configure_flags": "--disable-tests" } }, { "name": "rpc", "repo": "${{ inputs.stellar-rpc-repo }}", "ref": "${{ inputs.stellar-rpc-ref }}" }, { "name": "horizon", "repo": "stellar/stellar-horizon", "ref": "${{ inputs.horizon-ref }}", "options": { "pkg": "github.com/stellar/stellar-horizon" } }, From c7651c1cfbb8f4dfde59d0c7f1d28be8bbfbd470 Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Mon, 12 Jan 2026 13:11:39 -0800 Subject: [PATCH 4/9] changed tag name for step config --- .github/workflows/test-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-workflow.yml b/.github/workflows/test-workflow.yml index 81d5da4..4b36538 100644 --- a/.github/workflows/test-workflow.yml +++ b/.github/workflows/test-workflow.yml @@ -185,7 +185,7 @@ jobs: images< Date: Mon, 12 Jan 2026 15:59:12 -0800 Subject: [PATCH 5/9] handle default cli git ref when cli crate is used --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 53987f2..2d325fc 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ STELLAR_CLI_STAGE_IMAGE=stellar/system-test-stellar-cli:dev # variables to set for source code, can be any valid docker context url local # path github remote repo `https://github.com/repo#` -STELLAR_CLI_GIT_REF=https://github.com/stellar/stellar-cli.git\#main +override STELLAR_CLI_GIT_REF := $(if $(STELLAR_CLI_GIT_REF),$(STELLAR_CLI_GIT_REF),https://github.com/stellar/stellar-cli.git\#main) # if crate version is set, then it overrides STELLAR_CLI_GIT_REF, cli will be installed from this create instead STELLAR_CLI_CRATE_VERSION= From 57a365a2c8a59a6778900922e6857107d6626d66 Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Tue, 13 Jan 2026 10:31:02 -0800 Subject: [PATCH 6/9] enhance cli cache key, change cli ref vs crate build step logic --- .github/workflows/test-workflow.yml | 2 +- Makefile | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-workflow.yml b/.github/workflows/test-workflow.yml index 4b36538..f6d3c16 100644 --- a/.github/workflows/test-workflow.yml +++ b/.github/workflows/test-workflow.yml @@ -170,7 +170,7 @@ jobs: SYSTEM_TEST_SHA=$(get_commit_sha "stellar/system-test" "${{ inputs.system-test-git-ref }}") # Compute CLI image cache key - CLI_CACHE_INPUT="${{ runner.os }}-${{ inputs.stellar-cli-repo }}-$CLI_SHA-${{ inputs.stellar-cli-crate-version }}" + CLI_CACHE_INPUT="${{ runner.os }}-${{ inputs.stellar-cli-repo }}-$CLI_SHA-${{ inputs.stellar-cli-ref }}-${{ inputs.stellar-cli-crate-version }}" CLI_CACHE_KEY="cli-image-$(echo -n "$CLI_CACHE_INPUT" | sha256sum | cut -d' ' -f1)" echo "cli-image-cache-key=$CLI_CACHE_KEY" >> $GITHUB_OUTPUT diff --git a/Makefile b/Makefile index 2d325fc..e29a7a6 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ STELLAR_CLI_STAGE_IMAGE=stellar/system-test-stellar-cli:dev # variables to set for source code, can be any valid docker context url local # path github remote repo `https://github.com/repo#` -override STELLAR_CLI_GIT_REF := $(if $(STELLAR_CLI_GIT_REF),$(STELLAR_CLI_GIT_REF),https://github.com/stellar/stellar-cli.git\#main) +STELLAR_CLI_GIT_REF=https://github.com/stellar/stellar-cli.git\#main # if crate version is set, then it overrides STELLAR_CLI_GIT_REF, cli will be installed from this create instead STELLAR_CLI_CRATE_VERSION= @@ -40,11 +40,12 @@ SYSTEM_TEST_IMAGE=stellar/system-test:dev build-stellar-cli: if [ -z "$(STELLAR_CLI_IMAGE)" ]; then \ DOCKERHUB_RUST_VERSION=rust:$$( [ "$(RUST_TOOLCHAIN_VERSION)" = "stable" ] && echo "latest" || echo "$(RUST_TOOLCHAIN_VERSION)"); \ - docker buildx build --progress=plain --load -t "$(STELLAR_CLI_STAGE_IMAGE)" --target builder \ + DOCKER_CONTEXT=$$( [ -z "$(STELLAR_CLI_CRATE_VERSION)" ] && echo "-f- $(STELLAR_CLI_GIT_REF) < $(MAKEFILE_DIR)Dockerfile.stellar-cli" || echo "-f Dockerfile.stellar-cli ." ); \ + eval "docker buildx build --progress=plain --load -t \"$(STELLAR_CLI_STAGE_IMAGE)\" --target builder \ --build-arg BUILDKIT_CONTEXT_KEEP_GIT_DIR=true \ - --build-arg DOCKERHUB_RUST_VERSION="$$DOCKERHUB_RUST_VERSION" \ - --build-arg STELLAR_CLI_CRATE_VERSION="$(STELLAR_CLI_CRATE_VERSION)" \ - -f- $(STELLAR_CLI_GIT_REF) < $(MAKEFILE_DIR)Dockerfile.stellar-cli; \ + --build-arg DOCKERHUB_RUST_VERSION=\"\$$DOCKERHUB_RUST_VERSION\" \ + --build-arg STELLAR_CLI_CRATE_VERSION=\"$(STELLAR_CLI_CRATE_VERSION)\" \ + \$$DOCKER_CONTEXT"; \ fi build: build-stellar-cli From fa6c63245c98cdb28f3a49df5154b902c6c55cc0 Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Tue, 13 Jan 2026 14:28:23 -0800 Subject: [PATCH 7/9] change docker build to explicitly use docker driver, container driver not needed from buildx --- Dockerfile.stellar-cli | 4 +++- Makefile | 12 ++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Dockerfile.stellar-cli b/Dockerfile.stellar-cli index 41cb16f..c2e65ea 100644 --- a/Dockerfile.stellar-cli +++ b/Dockerfile.stellar-cli @@ -1,8 +1,10 @@ ARG DOCKERHUB_RUST_VERSION -ARG STELLAR_CLI_CRATE_VERSION FROM $DOCKERHUB_RUST_VERSION AS builder +# Declare ARG to make it available in this build stage +ARG STELLAR_CLI_CRATE_VERSION + WORKDIR /soroban-tools COPY . . diff --git a/Makefile b/Makefile index e29a7a6..b34da42 100644 --- a/Makefile +++ b/Makefile @@ -40,17 +40,17 @@ SYSTEM_TEST_IMAGE=stellar/system-test:dev build-stellar-cli: if [ -z "$(STELLAR_CLI_IMAGE)" ]; then \ DOCKERHUB_RUST_VERSION=rust:$$( [ "$(RUST_TOOLCHAIN_VERSION)" = "stable" ] && echo "latest" || echo "$(RUST_TOOLCHAIN_VERSION)"); \ - DOCKER_CONTEXT=$$( [ -z "$(STELLAR_CLI_CRATE_VERSION)" ] && echo "-f- $(STELLAR_CLI_GIT_REF) < $(MAKEFILE_DIR)Dockerfile.stellar-cli" || echo "-f Dockerfile.stellar-cli ." ); \ - eval "docker buildx build --progress=plain --load -t \"$(STELLAR_CLI_STAGE_IMAGE)\" --target builder \ + DOCKER_CONTEXT=$$( [ -z "$(STELLAR_CLI_CRATE_VERSION)" ] && echo "$(STELLAR_CLI_GIT_REF)" || echo "." ); \ + docker build --progress=plain -t "$(STELLAR_CLI_STAGE_IMAGE)" --target builder \ --build-arg BUILDKIT_CONTEXT_KEEP_GIT_DIR=true \ - --build-arg DOCKERHUB_RUST_VERSION=\"\$$DOCKERHUB_RUST_VERSION\" \ - --build-arg STELLAR_CLI_CRATE_VERSION=\"$(STELLAR_CLI_CRATE_VERSION)\" \ - \$$DOCKER_CONTEXT"; \ + --build-arg DOCKERHUB_RUST_VERSION="$$DOCKERHUB_RUST_VERSION" \ + --build-arg STELLAR_CLI_CRATE_VERSION="$(STELLAR_CLI_CRATE_VERSION)" \ + -f- $$DOCKER_CONTEXT < $(MAKEFILE_DIR)Dockerfile.stellar-cli; \ fi build: build-stellar-cli STELLAR_CLI_IMAGE_REF=$$( [ -z "$(STELLAR_CLI_IMAGE)" ] && echo "$(STELLAR_CLI_STAGE_IMAGE)" || echo "$(STELLAR_CLI_IMAGE)"); \ - docker buildx build --progress=plain --load -t "$(SYSTEM_TEST_IMAGE)" -f Dockerfile \ + docker build --progress=plain -t "$(SYSTEM_TEST_IMAGE)" -f Dockerfile \ --build-arg BUILDKIT_CONTEXT_KEEP_GIT_DIR=true \ --build-arg STELLAR_CLI_CRATE_VERSION=$(STELLAR_CLI_CRATE_VERSION) \ --build-arg STELLAR_CLI_IMAGE_REF=$$STELLAR_CLI_IMAGE_REF \ From 97c7a746d355d91c4d630e49411ea78ebce2029f Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Tue, 13 Jan 2026 14:56:46 -0800 Subject: [PATCH 8/9] update qs build image tag reference to match prefix set in images.json --- .github/workflows/test-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-workflow.yml b/.github/workflows/test-workflow.yml index f6d3c16..61c303e 100644 --- a/.github/workflows/test-workflow.yml +++ b/.github/workflows/test-workflow.yml @@ -329,7 +329,7 @@ jobs: - name: Start quickstart with rpc uses: stellar/quickstart@main with: - artifact: image-quickstart-rpc-custom-amd64.tar + artifact: image-quickstart-system-test-custom-amd64 tag: rpc-custom-amd64 enable: core,rpc - name: Download system-test image artifact From 96c1e81028574fcc09008a3ab3bfb15bc2b9aefd Mon Sep 17 00:00:00 2001 From: Shawn Reuland Date: Tue, 13 Jan 2026 16:22:55 -0800 Subject: [PATCH 9/9] update qs run step to use correct images.json tag reference for image --- .github/workflows/test-workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-workflow.yml b/.github/workflows/test-workflow.yml index 61c303e..b89048a 100644 --- a/.github/workflows/test-workflow.yml +++ b/.github/workflows/test-workflow.yml @@ -329,8 +329,8 @@ jobs: - name: Start quickstart with rpc uses: stellar/quickstart@main with: - artifact: image-quickstart-system-test-custom-amd64 - tag: rpc-custom-amd64 + artifact: image-quickstart-system-test-custom-amd64.tar + tag: system-test-custom-amd64 enable: core,rpc - name: Download system-test image artifact uses: actions/download-artifact@v4