From 4ee5c63de3d2cbc0495547ec89e3a6f40c875584 Mon Sep 17 00:00:00 2001 From: Enderson Maia Date: Fri, 21 Mar 2025 16:15:04 -0300 Subject: [PATCH 1/2] feat(sdk): add cartesi/rollups-database container image release --- .changeset/fast-pumpkins-tickle.md | 5 ++ .github/workflows/rollups-database.yml | 91 ++++++++++++++++++++++++++ packages/sdk/Dockerfile | 6 +- packages/sdk/docker-bake.hcl | 5 ++ 4 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 .changeset/fast-pumpkins-tickle.md create mode 100644 .github/workflows/rollups-database.yml diff --git a/.changeset/fast-pumpkins-tickle.md b/.changeset/fast-pumpkins-tickle.md new file mode 100644 index 00000000..27e324e5 --- /dev/null +++ b/.changeset/fast-pumpkins-tickle.md @@ -0,0 +1,5 @@ +--- +"@cartesi/sdk": patch +--- + +add cartesi/rollups-database container image release diff --git a/.github/workflows/rollups-database.yml b/.github/workflows/rollups-database.yml new file mode 100644 index 00000000..e92488e2 --- /dev/null +++ b/.github/workflows/rollups-database.yml @@ -0,0 +1,91 @@ +name: rollups-database +on: + workflow_call: + secrets: + DOCKERHUB_USERNAME: + required: true + DOCKERHUB_TOKEN: + required: true + pull_request: + paths: + - .github/workflows/rollups-database.yaml + - packages/sdk/** +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} + cancel-in-progress: true +permissions: + contents: read + packages: write + id-token: write + actions: write +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Get package tag/version + id: package-version + if: ${{ github.event_name == 'push' }} + run: | + jq -r '"PACKAGE_VERSION=\(.version)"' packages/sdk/package.json >> "$GITHUB_OUTPUT" + + - name: Docker meta + id: meta + uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0 + with: + images: | + docker.io/cartesi/sdk-node,enable=${{ github.event_name != 'pull_request' }} + ghcr.io/cartesi/sdk-node + 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 Rollups Database + org.opencontainers.image.description=Cartesi Rollups SDK Node with pre-initialized PostgreSQL Database + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 + + - name: Login to GitHub Container Registry + uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Login to DockerHub + uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push + uses: docker/bake-action@4a9a8d494466d37134e2bfca2d3a8de8fb2681ad # v5.13.0 + if: ${{ !startsWith(github.ref, 'refs/tags/sdk@') }} + with: + workdir: packages/sdk + targets: database + files: | + ./docker-bake.hcl + ./docker-bake.platforms.hcl + ${{ steps.meta.outputs.bake-file }} + set: | + *.cache-from=type=gha + *.cache-to=type=gha,mode=max + push: true + + - uses: depot/setup-action@b0b1ea4f69e92ebf5dea3f8713a1b0c37b2126a5 # v1.6.0 + - name: Build and push (depot) + uses: depot/bake-action@58d7160c6bfa64eb85e384209e6f2f5ad17948bb # v1.11.0 + if: ${{ startsWith(github.ref, 'refs/tags/sdk@') }} + with: + project: ${{ vars.DEPOT_PROJECT }} + workdir: packages/sdk + targets: database + files: | + ./docker-bake.hcl + ./docker-bake.platforms.hcl + ${{ steps.meta.outputs.bake-file }} + push: true diff --git a/packages/sdk/Dockerfile b/packages/sdk/Dockerfile index 70ccbe03..6439aa58 100644 --- a/packages/sdk/Dockerfile +++ b/packages/sdk/Dockerfile @@ -229,6 +229,11 @@ EOF RUN /usr/local/bin/docker-ensure-initdb.sh postgres +################################################################################ +# rollups-database image +FROM ${POSTGRES_BASE_IMAGE} AS database +COPY --from=postgresql-initdb /var/lib/postgresql/data /var/lib/postgresql/data + ################################################################################ # sdk final image FROM runtime @@ -331,7 +336,6 @@ COPY --from=crane /usr/local/bin/crane /usr/local/bin/ COPY --from=foundry /usr/local/bin/anvil /usr/local/bin/ COPY --from=foundry /usr/local/bin/cast /usr/local/bin/ COPY --from=espresso-dev-node /usr/bin/espresso-dev-node /usr/local/bin/ -COPY --from=postgresql-initdb /var/lib/postgresql/data /var/lib/postgresql/data 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 diff --git a/packages/sdk/docker-bake.hcl b/packages/sdk/docker-bake.hcl index 9dfe00a8..f519c22f 100644 --- a/packages/sdk/docker-bake.hcl +++ b/packages/sdk/docker-bake.hcl @@ -28,3 +28,8 @@ target "runtime" { inherits = ["default", "docker-metadata-action", "docker-platforms"] target = "runtime" } + +target "database" { + inherits = ["default", "docker-metadata-action", "docker-platforms"] + target = "database" +} From f99284beda4a570e4b85cf0c06b9510de9898d60 Mon Sep 17 00:00:00 2001 From: Enderson Maia Date: Fri, 21 Mar 2025 16:35:50 -0300 Subject: [PATCH 2/2] fixup! feat(sdk): add cartesi/rollups-database container image release --- .github/workflows/rollups-database.yml | 6 +++--- packages/sdk/docker-bake.override.hcl | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/rollups-database.yml b/.github/workflows/rollups-database.yml index e92488e2..c3eb3e27 100644 --- a/.github/workflows/rollups-database.yml +++ b/.github/workflows/rollups-database.yml @@ -36,14 +36,14 @@ jobs: uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0 with: images: | - docker.io/cartesi/sdk-node,enable=${{ github.event_name != 'pull_request' }} - ghcr.io/cartesi/sdk-node + docker.io/cartesi/rollups-database,enable=${{ github.event_name != 'pull_request' }} + ghcr.io/cartesi/rollups-database 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 Rollups Database - org.opencontainers.image.description=Cartesi Rollups SDK Node with pre-initialized PostgreSQL Database + org.opencontainers.image.description=Cartesi Rollups SDK Database with pre-initialized PostgreSQL Database - name: Set up Docker Buildx uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 diff --git a/packages/sdk/docker-bake.override.hcl b/packages/sdk/docker-bake.override.hcl index 4b833095..cd8e7ead 100644 --- a/packages/sdk/docker-bake.override.hcl +++ b/packages/sdk/docker-bake.override.hcl @@ -5,3 +5,7 @@ target "default" { target "rollups-node" { tags = ["cartesi/sdk-node:devel"] } + +target "database" { + tags = ["cartesi/rollups-database:devel"] +}