From 7b7aaa25b319c18a2ee4cecfbf14f6ba4a073d55 Mon Sep 17 00:00:00 2001 From: Enderson Maia Date: Mon, 24 Mar 2025 13:52:03 -0300 Subject: [PATCH 1/2] feat(sdk): new rollups-runtime and rollups-database releases --- .changeset/famous-swans-rush.md | 5 +++++ .github/workflows/sdk.yaml | 16 +++++++++------- packages/sdk/Dockerfile | 12 ++++++------ packages/sdk/docker-bake.hcl | 26 ++++++++++++++++++++++++++ packages/sdk/docker-bake.override.hcl | 10 +++++++++- 5 files changed, 55 insertions(+), 14 deletions(-) create mode 100644 .changeset/famous-swans-rush.md diff --git a/.changeset/famous-swans-rush.md b/.changeset/famous-swans-rush.md new file mode 100644 index 00000000..bdd394dd --- /dev/null +++ b/.changeset/famous-swans-rush.md @@ -0,0 +1,5 @@ +--- +"@cartesi/sdk": patch +--- + +add rollups-database and rollups-runtime container image releases diff --git a/.github/workflows/sdk.yaml b/.github/workflows/sdk.yaml index a6c8eb36..5bedf23f 100644 --- a/.github/workflows/sdk.yaml +++ b/.github/workflows/sdk.yaml @@ -21,6 +21,9 @@ permissions: jobs: build: runs-on: ubuntu-latest + strategy: + matrix: + target: ["rollups-database", "rollups-runtime", "sdk"] steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 @@ -36,14 +39,11 @@ jobs: uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0 with: images: | - docker.io/cartesi/sdk,enable=${{ github.event_name != 'pull_request' }} - ghcr.io/cartesi/sdk + docker.io/cartesi/${{ matrix.target }},enable=${{ github.event_name != 'pull_request' }} + ghcr.io/cartesi/${{ matrix.target }} tags: | type=raw,value=${{ steps.package-version.outputs.PACKAGE_VERSION }},enable=${{ github.event_name == 'push' }} type=ref,event=pr - labels: | - org.opencontainers.image.title=Cartesi SDK - org.opencontainers.image.description=Cartesi SDK tools image - name: Set up Docker Buildx uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 @@ -66,13 +66,14 @@ jobs: if: ${{ !startsWith(github.ref, 'refs/tags/sdk@') }} with: workdir: packages/sdk + targets: ${{ matrix.target }} files: | ./docker-bake.hcl ./docker-bake.platforms.hcl ${{ steps.meta.outputs.bake-file }} set: | - *.cache-from=type=gha - *.cache-to=type=gha,mode=max + *.cache-from=type=registry,ref=ghcr.io/cartesi/sdk-cache:shared + *.cache-to=type=registry,ref=ghcr.io/cartesi/sdk-cache:shared,mode=max push: true - uses: depot/setup-action@b0b1ea4f69e92ebf5dea3f8713a1b0c37b2126a5 # v1.6.0 @@ -81,6 +82,7 @@ jobs: if: ${{ startsWith(github.ref, 'refs/tags/sdk@') }} with: project: ${{ vars.DEPOT_PROJECT }} + targets: ${{ matrix.target }} workdir: packages/sdk files: | ./docker-bake.hcl diff --git a/packages/sdk/Dockerfile b/packages/sdk/Dockerfile index 80818f41..62051120 100644 --- a/packages/sdk/Dockerfile +++ b/packages/sdk/Dockerfile @@ -121,8 +121,8 @@ curl -fsSL "https://github.com/cartesi/rollups-espresso-reader/archive/refs/tags EOF ################################################################################ -# cartesi runtime target -FROM base AS runtime +# cartesi rollups-runtime target +FROM base AS rollups-runtime ARG CARTESI_MACHINE_EMULATOR_VERSION ARG CARTESI_ROLLUPS_NODE_VERSION ARG TARGETARCH @@ -188,8 +188,8 @@ apt-get install -y --no-install-recommends \ libslirp0 EOF -COPY --from=runtime /usr/bin/cartesi-rollups-cli /usr/bin/ -COPY --from=runtime /usr/lib/libcartesi* /usr/lib/ +COPY --from=rollups-runtime /usr/bin/cartesi-rollups-cli /usr/bin/ +COPY --from=rollups-runtime /usr/lib/libcartesi* /usr/lib/ COPY --from=go-migrate /usr/local/bin/migrate /usr/local/bin/ COPY --from=graphql-migration /usr/share/cartesi/rollups-graphql/migrations /usr/share/cartesi/rollups-graphql/migrations COPY --from=espresso-reader-migration /usr/share/cartesi/rollups-espresso-reader/migrations /usr/share/cartesi/rollups-espresso-reader/migrations @@ -229,12 +229,12 @@ RUN /usr/local/bin/docker-ensure-initdb.sh postgres ################################################################################ # rollups-database image -FROM ${POSTGRES_BASE_IMAGE} AS database +FROM ${POSTGRES_BASE_IMAGE} AS rollups-database COPY --from=postgresql-initdb /var/lib/postgresql/data /var/lib/postgresql/data ################################################################################ # sdk final image -FROM runtime +FROM rollups-runtime ARG ALTO_VERSION ARG CARTESI_DEVNET_VERSION ARG CARTESI_IMAGE_KERNEL_VERSION diff --git a/packages/sdk/docker-bake.hcl b/packages/sdk/docker-bake.hcl index e6cd7fa6..159b90d8 100644 --- a/packages/sdk/docker-bake.hcl +++ b/packages/sdk/docker-bake.hcl @@ -23,3 +23,29 @@ target "default" { XGENEXT2_VERSION = "1.5.6" } } + +target "sdk" { + inherits = ["default", "docker-metadata-action", "docker-platforms"] + labels = { + "org.opencontainers.image.title" = "Cartesi SDK Image" + "org.opencontainers.image.description" = "Cartesi SDK tools image" + } +} + +target "rollups-runtime" { + inherits = ["default", "docker-metadata-action", "docker-platforms"] + target = "rollups-runtime" + labels = { + "org.opencontainers.image.title" = "Cartesi Rollups Runtime image" + "org.opencontainers.image.description" = "Cartesi Rollups Runtime for production usage" + } +} + +target "rollups-database" { + inherits = ["default", "docker-metadata-action", "docker-platforms"] + target = "rollups-database" + labels = { + "org.opencontainers.image.title" = "Cartesi SDK Rollups Database image" + "org.opencontainers.image.description" = "Cartesi SDK PostgreSQL Database with preinitialized database for local development" + } +} diff --git a/packages/sdk/docker-bake.override.hcl b/packages/sdk/docker-bake.override.hcl index 82daf7cc..a1de9786 100644 --- a/packages/sdk/docker-bake.override.hcl +++ b/packages/sdk/docker-bake.override.hcl @@ -1,3 +1,11 @@ -target "default" { +target "sdk" { tags = ["cartesi/sdk:devel"] } + +target "rollups-runtime" { + tags = ["cartesi/rollups-runtime:devel"] +} + +target "rollups-database" { + tags = ["cartesi/rollups-database:devel"] +} From b76679bb806995fa06a8921c0db7939a80db718a Mon Sep 17 00:00:00 2001 From: Danilo Tuler Date: Mon, 24 Mar 2025 12:23:28 -0400 Subject: [PATCH 2/2] feat(sdk): single workflow with target matrix --- .github/workflows/sdk.yaml | 50 +++++++++++++++++++++++++++++------- packages/sdk/docker-bake.hcl | 12 +++++---- 2 files changed, 48 insertions(+), 14 deletions(-) diff --git a/.github/workflows/sdk.yaml b/.github/workflows/sdk.yaml index 5bedf23f..68309eb1 100644 --- a/.github/workflows/sdk.yaml +++ b/.github/workflows/sdk.yaml @@ -19,11 +19,14 @@ permissions: id-token: write actions: write jobs: - build: + meta: runs-on: ubuntu-latest strategy: matrix: - target: ["rollups-database", "rollups-runtime", "sdk"] + target: + - rollups-database + - rollups-runtime + - sdk steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 @@ -38,6 +41,7 @@ jobs: id: meta uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0 with: + bake-target: docker-metadata-${{ matrix.target }} images: | docker.io/cartesi/${{ matrix.target }},enable=${{ github.event_name != 'pull_request' }} ghcr.io/cartesi/${{ matrix.target }} @@ -45,6 +49,24 @@ jobs: type=raw,value=${{ steps.package-version.outputs.PACKAGE_VERSION }},enable=${{ github.event_name == 'push' }} type=ref,event=pr + - name: Upload bake definition file + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: docker-metadata-${{ matrix.target }} + path: ${{ steps.meta.outputs.bake-file }} + + build: + runs-on: ubuntu-latest + needs: meta + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Download all docker-metadata artifacts + uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1 + with: + path: packages/sdk/ + - name: Set up Docker Buildx uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 @@ -66,14 +88,19 @@ jobs: if: ${{ !startsWith(github.ref, 'refs/tags/sdk@') }} with: workdir: packages/sdk - targets: ${{ matrix.target }} + targets: | + rollups-database + rollups-runtime + sdk files: | ./docker-bake.hcl ./docker-bake.platforms.hcl - ${{ steps.meta.outputs.bake-file }} + ./docker-metadata-sdk/docker-metadata-action-bake.json + ./docker-metadata-rollups-runtime/docker-metadata-action-bake.json + ./docker-metadata-rollups-database/docker-metadata-action-bake.json set: | - *.cache-from=type=registry,ref=ghcr.io/cartesi/sdk-cache:shared - *.cache-to=type=registry,ref=ghcr.io/cartesi/sdk-cache:shared,mode=max + *.cache-from=type=gha + *.cache-to=type=gha,mode=max push: true - uses: depot/setup-action@b0b1ea4f69e92ebf5dea3f8713a1b0c37b2126a5 # v1.6.0 @@ -82,10 +109,15 @@ jobs: if: ${{ startsWith(github.ref, 'refs/tags/sdk@') }} with: project: ${{ vars.DEPOT_PROJECT }} - targets: ${{ matrix.target }} workdir: packages/sdk + targets: | + rollups-database + rollups-runtime + sdk files: | ./docker-bake.hcl - ./docker-bake.platforms.hcl - ${{ steps.meta.outputs.bake-file }} + ./docker-bake.platforms.json + ./docker-metadata-sdk/docker-metadata-action-bake.json + ./docker-metadata-rollups-runtime/docker-metadata-action-bake.json + ./docker-metadata-rollups-database/docker-metadata-action-bake.json push: true diff --git a/packages/sdk/docker-bake.hcl b/packages/sdk/docker-bake.hcl index 159b90d8..614733e8 100644 --- a/packages/sdk/docker-bake.hcl +++ b/packages/sdk/docker-bake.hcl @@ -1,8 +1,10 @@ -target "docker-metadata-action" {} +target "docker-metadata-sdk" {} +target "docker-metadata-rollups-runtime" {} +target "docker-metadata-rollups-database" {} target "docker-platforms" {} target "default" { - inherits = ["docker-metadata-action", "docker-platforms"] + inherits = ["docker-platforms"] args = { ALTO_VERSION = "0.0.4" CARTESI_BASE_IMAGE = "docker.io/library/debian:bookworm-20250317-slim@sha256:1209d8fd77def86ceb6663deef7956481cc6c14a25e1e64daec12c0ceffcc19d" @@ -25,7 +27,7 @@ target "default" { } target "sdk" { - inherits = ["default", "docker-metadata-action", "docker-platforms"] + inherits = ["default", "docker-metadata-sdk"] labels = { "org.opencontainers.image.title" = "Cartesi SDK Image" "org.opencontainers.image.description" = "Cartesi SDK tools image" @@ -33,7 +35,7 @@ target "sdk" { } target "rollups-runtime" { - inherits = ["default", "docker-metadata-action", "docker-platforms"] + inherits = ["default", "docker-metadata-rollups-runtime"] target = "rollups-runtime" labels = { "org.opencontainers.image.title" = "Cartesi Rollups Runtime image" @@ -42,7 +44,7 @@ target "rollups-runtime" { } target "rollups-database" { - inherits = ["default", "docker-metadata-action", "docker-platforms"] + inherits = ["default", "docker-metadata-rollups-database"] target = "rollups-database" labels = { "org.opencontainers.image.title" = "Cartesi SDK Rollups Database image"