This commit is contained in:
Florian Forster 2025-02-24 21:30:55 +01:00
parent 952da47c73
commit 0ba96c4ecc
No known key found for this signature in database
3 changed files with 44 additions and 32 deletions

View File

@ -9,8 +9,10 @@ COPY docs/frameworks.json ../docs/frameworks.json
FROM scratch AS generate FROM scratch AS generate
COPY --from=base /app/src/app/proto/generated/ /console/src/app/proto/generated/ COPY --from=base /app/src/app/proto/generated/ /console/src/app/proto/generated/
FROM base AS build FROM base AS builder
RUN yarn build RUN yarn build
FROM scratch AS build
COPY --from=builder /app/dist/console .
FROM base AS lint FROM base AS lint
RUN yarn lint RUN yarn lint
@ -20,6 +22,3 @@ RUN rm -rf /usr/share/nginx/html/*
COPY nginx.conf /etc/nginx/nginx.conf COPY nginx.conf /etc/nginx/nginx.conf
COPY --from=build /app/dist /usr/share/nginx/html COPY --from=build /app/dist /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"] CMD ["nginx", "-g", "daemon off;"]
FROM scratch AS output
COPY --from=build /app/dist/console .

View File

@ -26,12 +26,37 @@ COPY --from=base /app/pkg/grpc/ /pkg/grpc/
COPY --from=base /app/openapi/ /openapi/ COPY --from=base /app/openapi/ /openapi/
COPY --from=base /app/internal/api/assets/generator/ /internal/api/assets/generator/ COPY --from=base /app/internal/api/assets/generator/ /internal/api/assets/generator/
FROM base AS build FROM base AS build-linux-amd64
COPY --from=console ./ internal/api/ui/console/static COPY --from=console ./ internal/api/ui/console/static
COPY .goreleaser.yaml ./ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o zitadel -v -ldflags="-s -w -X 'github.com/zitadel/zitadel/cmd/build.commit=${COMMIT_SHA}' -X 'github.com/zitadel/zitadel/cmd/build.date=${now}' -X 'github.com/zitadel/zitadel/cmd/build.version=${VERSION}' " \
RUN goreleaser release --snapshot --clean && chmod +x zitadel
# RUN CGO_ENABLED=0 go build -o zitadel -v -ldflags="-s -w -X 'github.com/zitadel/zitadel/cmd/build.commit=${COMMIT_SHA}' -X 'github.com/zitadel/zitadel/cmd/build.date=${now}' -X 'github.com/zitadel/zitadel/cmd/build.version=${VERSION}' " \ FROM base AS build-linux-arm64
# && chmod +x zitadel COPY --from=console ./ internal/api/ui/console/static
RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o zitadel -v -ldflags="-s -w -X 'github.com/zitadel/zitadel/cmd/build.commit=${COMMIT_SHA}' -X 'github.com/zitadel/zitadel/cmd/build.date=${now}' -X 'github.com/zitadel/zitadel/cmd/build.version=${VERSION}' " \
&& chmod +x zitadel
FROM base AS build-darwin-amd64
COPY --from=console ./ internal/api/ui/console/static
RUN CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o zitadel -v -ldflags="-s -w -X 'github.com/zitadel/zitadel/cmd/build.commit=${COMMIT_SHA}' -X 'github.com/zitadel/zitadel/cmd/build.date=${now}' -X 'github.com/zitadel/zitadel/cmd/build.version=${VERSION}' " \
&& chmod +x zitadel
FROM base AS build-darwin-arm64
COPY --from=console ./ internal/api/ui/console/static
RUN CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o zitadel -v -ldflags="-s -w -X 'github.com/zitadel/zitadel/cmd/build.commit=${COMMIT_SHA}' -X 'github.com/zitadel/zitadel/cmd/build.date=${now}' -X 'github.com/zitadel/zitadel/cmd/build.version=${VERSION}' " \
&& chmod +x zitadel
FROM base AS build-windows-amd64
COPY --from=console ./ internal/api/ui/console/static
RUN CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o zitadel -v -ldflags="-s -w -X 'github.com/zitadel/zitadel/cmd/build.commit=${COMMIT_SHA}' -X 'github.com/zitadel/zitadel/cmd/build.date=${now}' -X 'github.com/zitadel/zitadel/cmd/build.version=${VERSION}' " \
&& chmod +x zitadel
FROM base AS build-windows-arm64
COPY --from=console ./ internal/api/ui/console/static
RUN CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -o zitadel -v -ldflags="-s -w -X 'github.com/zitadel/zitadel/cmd/build.commit=${COMMIT_SHA}' -X 'github.com/zitadel/zitadel/cmd/build.date=${now}' -X 'github.com/zitadel/zitadel/cmd/build.version=${VERSION}' " \
&& chmod +x zitadel
FROM scratch AS build
COPY --from=build-linux-amd64 /app/zitadel zitadel-linux-amd64
COPY --from=build-linux-arm64 /app/zitadel zitadel-linux-arm64
COPY --from=build-darwin-amd64 /app/zitadel zitadel-darwin-amd64
COPY --from=build-darwin-arm64 /app/zitadel zitadel-darwin-arm64
COPY --from=build-windows-amd64 /app/zitadel zitadel-windows-amd64
COPY --from=build-windows-arm64 /app/zitadel zitadel-windows-arm64
FROM base AS lint FROM base AS lint
COPY --from=console ./ internal/api/ui/console/static COPY --from=console ./ internal/api/ui/console/static
@ -39,13 +64,13 @@ COPY .golangci.yaml ./
COPY .git/ ./.git/ COPY .git/ ./.git/
RUN make core_lint RUN make core_lint
FROM scratch AS output FROM base AS unit-test
COPY --from=build /app/zitadel .
FROM base AS unit
COPY --from=console ./ internal/api/ui/console/static COPY --from=console ./ internal/api/ui/console/static
RUN go test -race -coverprofile=profile.cov -coverpkg=./internal/... ./... RUN go test -race -coverprofile=profile.cov -coverpkg=./internal/... ./...
FROM scratch AS unit
COPY --from=unit-test /app/profile.cov .
FROM debian:latest AS base-image FROM debian:latest AS base-image
ENV ZITADEL_ARGS= ENV ZITADEL_ARGS=
ARG TARGETPLATFORM ARG TARGETPLATFORM
@ -69,4 +94,4 @@ COPY --from=base-image /etc/ssl/certs /etc/ssl/certs
COPY --from=base-image /app/zitadel /app/zitadel COPY --from=base-image /app/zitadel /app/zitadel
HEALTHCHECK NONE HEALTHCHECK NONE
USER zitadel USER zitadel
ENTRYPOINT ["/app/zitadel"] ENTRYPOINT ["/app/zitadel"]

View File

@ -7,7 +7,7 @@ variable "REGISTRY" {
} }
group "all" { group "all" {
targets = ["build", "output", "lint", "image", "unit"] targets = ["build", "lint", "image", "unit"]
} }
group "build" { group "build" {
@ -18,10 +18,6 @@ group "generate" {
targets = ["console-generate" , "core-generate"] targets = ["console-generate" , "core-generate"]
} }
group "output" {
targets = ["console-output", "core-output"]
}
group "lint" { group "lint" {
targets = ["console-lint", "core-lint"] targets = ["console-lint", "core-lint"]
} }
@ -47,32 +43,28 @@ target "console" {
name = "console-${tgt}" name = "console-${tgt}"
inherits = ["_console"] inherits = ["_console"]
matrix = { matrix = {
tgt = ["build", "output", "lint", "image", "generate"] tgt = ["build", "lint", "image", "generate"]
} }
output = { output = {
"build" = ["type=cacheonly"] "build" = ["type=local,dest=.build/console"]
"output" = ["type=local,dest=.build/console"]
"lint" = ["type=cacheonly"] "lint" = ["type=cacheonly"]
"image" = ["type=docker"] "image" = ["type=docker"]
"generate" = ["type=local,dest=./"] "generate" = ["type=local,dest=./"]
}[tgt] }[tgt]
tags = { tags = {
"build" = [] "build" = []
"output" = []
"lint" = [] "lint" = []
"image" = ["${REGISTRY}/console:${GITHUB_SHA}"] "image" = ["${REGISTRY}/console:${GITHUB_SHA}"]
"generate" = [] "generate" = []
}[tgt] }[tgt]
cache-to = { cache-to = {
"build" = ["type=gha,ignore-error=true,mode=max,scope=console-${tgt}"] "build" = ["type=gha,ignore-error=true,mode=max,scope=console-${tgt}"]
"output" = ["type=gha,ignore-error=true,mode=max,scope=console-${tgt}"]
"lint" = ["type=gha,ignore-error=true,mode=max,scope=console-${tgt}"] "lint" = ["type=gha,ignore-error=true,mode=max,scope=console-${tgt}"]
"image" = ["type=gha,ignore-error=true,mode=max,scope=console-${tgt}"] "image" = ["type=gha,ignore-error=true,mode=max,scope=console-${tgt}"]
"generate" = ["type=gha,ignore-error=true,mode=max,scope=console-${tgt}"] "generate" = ["type=gha,ignore-error=true,mode=max,scope=console-${tgt}"]
}[tgt] }[tgt]
cache-from = { cache-from = {
"build" = ["type=gha,scope=console-${tgt}"] "build" = ["type=gha,scope=console-${tgt}"]
"output" = ["type=gha,scope=console-${tgt}"]
"lint" = ["type=gha,scope=console-${tgt}"] "lint" = ["type=gha,scope=console-${tgt}"]
"image" = ["type=gha,scope=console-${tgt}"] "image" = ["type=gha,scope=console-${tgt}"]
"generate" = ["type=gha,scope=console-${tgt}"] "generate" = ["type=gha,scope=console-${tgt}"]
@ -98,19 +90,17 @@ target "core" {
name = "core-${tgt}" name = "core-${tgt}"
inherits = ["_core"] inherits = ["_core"]
matrix = { matrix = {
tgt = ["build", "output", "lint", "image", "generate", "unit"] tgt = ["build", "lint", "image", "generate", "unit"]
} }
output = { output = {
"build" = ["type=cacheonly"] "build" = ["type=local,dest=.build/core"]
"output" = ["type=local,dest=.build/core"]
"lint" = ["type=cacheonly"] "lint" = ["type=cacheonly"]
"unit" = ["type=cacheonly"] "unit" = ["type=local,dest=./.build/core"]
"image" = ["type=docker"] "image" = ["type=docker"]
"generate" = ["type=local,dest=./"] "generate" = ["type=local,dest=./"]
}[tgt] }[tgt]
tags = { tags = {
"build" = [] "build" = []
"output" = []
"lint" = [] "lint" = []
"unit" = [] "unit" = []
"image" = ["${REGISTRY}/zitadel:${GITHUB_SHA}"] "image" = ["${REGISTRY}/zitadel:${GITHUB_SHA}"]
@ -118,7 +108,6 @@ target "core" {
}[tgt] }[tgt]
cache-to = { cache-to = {
"build" = ["type=gha,ignore-error=true,mode=max,scope=core-${tgt}"] "build" = ["type=gha,ignore-error=true,mode=max,scope=core-${tgt}"]
"output" = ["type=gha,ignore-error=true,mode=max,scope=core-${tgt}"]
"lint" = ["type=gha,ignore-error=true,mode=max,scope=core-${tgt}"] "lint" = ["type=gha,ignore-error=true,mode=max,scope=core-${tgt}"]
"unit" = ["type=gha,ignore-error=true,mode=max,scope=core-${tgt}"] "unit" = ["type=gha,ignore-error=true,mode=max,scope=core-${tgt}"]
"image" = ["type=gha,ignore-error=true,mode=max,scope=core-${tgt}"] "image" = ["type=gha,ignore-error=true,mode=max,scope=core-${tgt}"]
@ -126,7 +115,6 @@ target "core" {
}[tgt] }[tgt]
cache-from = { cache-from = {
"build" = ["type=gha,scope=core-${tgt}"] "build" = ["type=gha,scope=core-${tgt}"]
"output" = ["type=gha,scope=core-${tgt}"]
"lint" = ["type=gha,scope=core-${tgt}"] "lint" = ["type=gha,scope=core-${tgt}"]
"unit" = ["type=gha,scope=core-${tgt}"] "unit" = ["type=gha,scope=core-${tgt}"]
"image" = ["type=gha,scope=core-${tgt}"] "image" = ["type=gha,scope=core-${tgt}"]