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 b080ed8884)
This commit is contained in:
Elio Bischof
2025-10-23 20:08:24 +02:00
committed by Livio Spring
parent 4c82d728f4
commit ec91be8725
8 changed files with 33 additions and 18 deletions

View File

@@ -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"

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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",
}
],

View File

@@ -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\"'"
]
}
},

View File

@@ -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"
]
}
}

View File

@@ -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"