Merge workflows into one CI pipeline
- Unit tests, integration tests and the Docker build check run in parallel on branches and pull requests - Integration tests run on every push instead of only manually - Branch builds only build amd64 and check the arm64 cross-compile in the test job; both platforms are built and pushed only for version tags, after all tests pass - Docker layers cached through the runner cache, Go module and build caches mounted in the Dockerfile - A newer push to the same branch cancels the running pipeline
This commit is contained in:
1 parent
9db61956d3
commit
8c974a49cc
5 files changed
+112
-119
No files matched your search
+5
-3
@@ -7,11 +7,13 @@ FROM --platform=$BUILDPLATFORM golang:1.25-alpine AS build
|
||||
ARG TARGETOS TARGETARCH
|
||||
WORKDIR /app
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
RUN --mount=type=cache,target=/go/pkg/mod go mod download
|
||||
COPY cmd/ ./cmd/
|
||||
COPY internal/ ./internal/
|
||||
RUN go tool templ generate
|
||||
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH \
|
||||
RUN --mount=type=cache,target=/go/pkg/mod --mount=type=cache,target=/root/.cache/go-build \
|
||||
go tool templ generate
|
||||
RUN --mount=type=cache,target=/go/pkg/mod --mount=type=cache,target=/root/.cache/go-build \
|
||||
CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH \
|
||||
go build -trimpath -ldflags="-s -w" -tags timetzdata -o main ./cmd
|
||||
|
||||
# Stage 2: Frontend static files (the same for every platform)
|
||||
|
||||
Reference in new issue
Block a user