From ec91be87251f67f18635c1c57aee1d4850c4f1f3 Mon Sep 17 00:00:00 2001 From: Elio Bischof Date: Thu, 23 Oct 2025 20:08:24 +0200 Subject: [PATCH] chore: release tarballs (#10956) # Which Problems Are Solved This PR makes sure that the tarballs containing the API binary and the standalone login are separately downloadable from the release pages again. # How the Problems Are Solved Because the `Pack` workflow uploads a single GitHub artifact containing all tarballs since #10571, we download this artifact so that it correctly unpacks into the correct folder structure configured in `.releaserc.js` The changes are tested [with this action run](https://github.com/eliobischof/zitadel/actions/runs/18745783976), which [created this release](https://github.com/eliobischof/zitadel/releases/tag/v1.0.0-release-archives.5). # Additional Changes - The term `standalone` is removed from the login tarball, as it should be clear that it is a standalone build. - The go builds and the login archiving are less verbose - The pipelines go versions are pinned to *v1.25*, a minor above the minimally required go version *v1.24.0* described in the go.mod file. This makes sure that we build using newer patches for security and performance. # Additional Context - The archives weren't published anymore since #10571 - Closes #10896 --------- Co-authored-by: Silvan <27845747+adlerhurst@users.noreply.github.com> (cherry picked from commit b080ed8884ca74235a0ed64ae555b35983c4cc3c) --- .github/workflows/ci.yml | 2 ++ .github/workflows/lint_test_build.yml | 5 ++++- .github/workflows/pack.yml | 5 ++++- .github/workflows/version.yml | 4 ++-- .releaserc.js | 20 +++++++++++++------- apps/api/project.json | 7 ++++--- apps/login/project.json | 4 ++-- project.json | 4 ++-- 8 files changed, 33 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4fbe91db29d..31ad746ef87 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,6 +26,7 @@ jobs: permissions: contents: read with: + go_version: "1.25" node_version: "22" secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} @@ -40,6 +41,7 @@ jobs: GCR_JSON_KEY_BASE64: ${{ secrets.GCR_JSON_KEY_BASE64 }} if: ${{ github.event_name == 'workflow_dispatch' }} with: + go_version: "1.25" node_version: "22" semantic_version: "23.0.7" image_name_github_api: "ghcr.io/zitadel/zitadel" diff --git a/.github/workflows/lint_test_build.yml b/.github/workflows/lint_test_build.yml index 0e7567d512e..9bc2efca19f 100644 --- a/.github/workflows/lint_test_build.yml +++ b/.github/workflows/lint_test_build.yml @@ -3,6 +3,9 @@ name: Lint Test Build on: workflow_call: inputs: + go_version: + required: true + type: string node_version: required: true type: string @@ -29,7 +32,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version-file: 'go.mod' + go-version: ${{ inputs.go_version }} - name: Set up pnpm uses: pnpm/action-setup@v4 with: diff --git a/.github/workflows/pack.yml b/.github/workflows/pack.yml index 4fdf8bf49cd..fa64bb3516b 100644 --- a/.github/workflows/pack.yml +++ b/.github/workflows/pack.yml @@ -3,6 +3,9 @@ name: Package und Publish Archives and Images on: workflow_call: inputs: + go_version: + required: true + type: string node_version: required: true type: string @@ -57,7 +60,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version-file: 'go.mod' + go-version: ${{ inputs.go_version }} - name: Set up pnpm uses: pnpm/action-setup@v4 with: diff --git a/.github/workflows/version.yml b/.github/workflows/version.yml index 7b442ad1812..380624521f9 100644 --- a/.github/workflows/version.yml +++ b/.github/workflows/version.yml @@ -32,8 +32,8 @@ jobs: uses: actions/download-artifact@v4 if: ${{ !inputs.dry_run }} with: - path: .artifacts - pattern: "{checksums.txt,zitadel-*}" + name: zitadel-archives + path: .artifacts/pack - name: Run Semantic Release uses: cycjimmy/semantic-release-action@v4 diff --git a/.releaserc.js b/.releaserc.js index be0029b395b..173fc3c540d 100644 --- a/.releaserc.js +++ b/.releaserc.js @@ -2,6 +2,7 @@ module.exports = { branches: [ { name: "next" }, { name: "next-rc", prerelease: "rc" }, + { name: "release-archives-clean", prerelease: "ignore-me" }, ], plugins: [ "@semantic-release/commit-analyzer", @@ -11,33 +12,38 @@ module.exports = { { draftRelease: true, successComment: false, + releaseBodyTemplate: "IGNORE THIS RELEASE\n\nThis is a temporary test-release that will be deleted soon.", assets: [ { - path: ".artifacts/zitadel-linux-amd64/zitadel-linux-amd64.tar.gz", + path: ".artifacts/pack/zitadel-linux-amd64.tar.gz", label: "zitadel-linux-amd64.tar.gz", }, { - path: ".artifacts/zitadel-linux-arm64/zitadel-linux-arm64.tar.gz", + path: ".artifacts/pack/zitadel-linux-arm64.tar.gz", label: "zitadel-linux-arm64.tar.gz", }, { - path: ".artifacts/zitadel-windows-amd64/zitadel-windows-amd64.tar.gz", + path: ".artifacts/pack/zitadel-windows-amd64.tar.gz", label: "zitadel-windows-amd64.tar.gz", }, { - path: ".artifacts/zitadel-windows-arm64/zitadel-windows-arm64.tar.gz", + path: ".artifacts/pack/zitadel-windows-arm64.tar.gz", label: "zitadel-windows-arm64.tar.gz", }, { - path: ".artifacts/zitadel-darwin-amd64/zitadel-darwin-amd64.tar.gz", + path: ".artifacts/pack/zitadel-darwin-amd64.tar.gz", label: "zitadel-darwin-amd64.tar.gz", }, { - path: ".artifacts/zitadel-darwin-arm64/zitadel-darwin-arm64.tar.gz", + path: ".artifacts/pack/zitadel-darwin-arm64.tar.gz", label: "zitadel-darwin-arm64.tar.gz", }, { - path: ".artifacts/checksums.txt", + path: ".artifacts/pack/zitadel-login.tar.gz", + label: "zitadel-login.tar.gz", + }, + { + path: ".artifacts/pack/checksums.txt", label: "checksums.txt", } ], diff --git a/apps/api/project.json b/apps/api/project.json index 776b4298875..d360ef15542 100644 --- a/apps/api/project.json +++ b/apps/api/project.json @@ -61,7 +61,7 @@ "generate", "build-console" ], - "command": "bash -c 'CGO_ENABLED=0 go build -o .artifacts/bin/$(go env GOOS)/$(go env GOARCH)/zitadel.local -v -ldflags=\"-s -w\"'", + "command": "bash -c 'CGO_ENABLED=0 go build -o .artifacts/bin/$(go env GOOS)/$(go env GOARCH)/zitadel.local -ldflags=\"-s -w\"'", "inputs": [ { "runtime": "go env GOOS" }, { "runtime": "go env GOARCH" }, @@ -347,10 +347,11 @@ "description": "Cross-compiles the binary and packages it for the platform defined by GOOS and GOARCH environment variables. The version is taken from the ZITADEL_VERSION environment variable.", "executor": "nx:run-commands", "options": { + "parallel": false, "commands": [ "mkdir -p .artifacts/pack .artifacts/bin/$GOOS/$GOARCH", - "bash -c 'EXT=\"\"; if [ \"$GOOS\" = \"windows\" ]; then EXT=\".exe\"; fi; echo \"Building for $GOOS-$GOARCH...\"; CGO_ENABLED=0 go build -o .artifacts/bin/$GOOS/$GOARCH/zitadel$EXT -v -ldflags=\"-s -w -X github.com/zitadel/zitadel/cmd/build.commit=$(git rev-parse --short HEAD) -X github.com/zitadel/zitadel/cmd/build.date=$(date \"+%Y-%m-%dT%T%z\" | sed -E \"s/.([0-9]{2})([0-9]{2})$/-\\1:\\2/\") -X github.com/zitadel/zitadel/cmd/build.version=${ZITADEL_VERSION}\"'", - "bash -c 'EXT=\"\"; if [ \"$GOOS\" = \"windows\" ]; then EXT=\".exe\"; fi; FOLDER=\".artifacts/pack/zitadel-$GOOS-$GOARCH\"; mkdir -p \"$FOLDER\"; cp \".artifacts/bin/$GOOS/$GOARCH/zitadel$EXT\" \"$FOLDER/\"; cp LICENSE \"$FOLDER/\"; cp README.md \"$FOLDER/\"; tar -czvf \"$FOLDER.tar.gz\" \"$FOLDER\"; rm -rf \"$FOLDER\"'" + "bash -c 'EXT=\"\"; if [ \"$GOOS\" = \"windows\" ]; then EXT=\".exe\"; fi; echo \"Building for $GOOS-$GOARCH...\"; CGO_ENABLED=0 go build -o .artifacts/bin/$GOOS/$GOARCH/zitadel$EXT -ldflags=\"-s -w -X github.com/zitadel/zitadel/cmd/build.commit=$(git rev-parse --short HEAD) -X github.com/zitadel/zitadel/cmd/build.date=$(date \"+%Y-%m-%dT%T%z\" | sed -E \"s/.([0-9]{2})([0-9]{2})$/-\\1:\\2/\") -X github.com/zitadel/zitadel/cmd/build.version=${ZITADEL_VERSION}\"'", + "bash -c 'EXT=\"\"; if [ \"$GOOS\" = \"windows\" ]; then EXT=\".exe\"; fi; FOLDER=\"zitadel-$GOOS-$GOARCH\"; mkdir -p \".artifacts/pack/$FOLDER\"; cp README.md LICENSE \".artifacts/bin/$GOOS/$GOARCH/zitadel$EXT\" \".artifacts/pack/$FOLDER/\"; tar -czvf \".artifacts/pack/$FOLDER.tar.gz\" -C .artifacts/pack \"$FOLDER\"; rm -rf \".artifacts/pack/$FOLDER\"'" ] } }, diff --git a/apps/login/project.json b/apps/login/project.json index 223fbd52b97..672dac6fa45 100644 --- a/apps/login/project.json +++ b/apps/login/project.json @@ -144,12 +144,12 @@ }, "commands": [ "mkdir -p ${PACK_DIR}", - "tar -czvf ${PACK_DIR}/zitadel-login-standalone.tar.gz -C ${STANDALONE_DIR} ." + "tar -czf ${PACK_DIR}/zitadel-login.tar.gz -C ${STANDALONE_DIR} ." ] }, "cache": true, "outputs": [ - "{workspaceRoot}/.artifacts/pack/zitadel-login-*.tar.gz" + "{workspaceRoot}/.artifacts/pack/zitadel-login.tar.gz" ] } } diff --git a/project.json b/project.json index c50a5ba3ab3..b57bd3f4386 100644 --- a/project.json +++ b/project.json @@ -27,12 +27,12 @@ "options": { "parallel": false, "commands": [ - "sha256sum .artifacts/pack/zitadel-*-*.tar.gz > .artifacts/pack/checksums.txt" + "sha256sum .artifacts/pack/zitadel-*.tar.gz > .artifacts/pack/checksums.txt" ] }, "cache": true, "inputs": [ - "{workspaceRoot}/.artifacts/pack/zitadel-*-*.tar.gz" + "{workspaceRoot}/.artifacts/pack/zitadel-*.tar.gz" ], "outputs": [ "{workspaceRoot}/.artifacts/pack/checksums.txt"