diff --git a/.github/workflows/deploy-staging.yml b/.github/workflows/deploy-staging.yml index 906463f..09116da 100644 --- a/.github/workflows/deploy-staging.yml +++ b/.github/workflows/deploy-staging.yml @@ -34,6 +34,10 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Get build timestamp + id: build-time + run: echo "timestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> $GITHUB_OUTPUT + - name: Extract metadata id: meta uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f @@ -54,6 +58,10 @@ jobs: labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max + build-args: | + VERSION=${{ steps.meta.outputs.version }} + GIT_COMMIT=${{ github.sha }} + BUILD_TIME=${{ steps.build-time.outputs.timestamp }} deploy-staging: name: Deploy to Staging diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cf8d6ce..d172f24 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -56,6 +56,10 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Get build timestamp + id: build-time + run: echo "timestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> $GITHUB_OUTPUT + - name: Extract metadata id: meta uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f @@ -75,4 +79,8 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha - cache-to: type=gha,mode=max \ No newline at end of file + cache-to: type=gha,mode=max + build-args: | + VERSION=${{ steps.meta.outputs.version }} + GIT_COMMIT=${{ github.sha }} + BUILD_TIME=${{ steps.build-time.outputs.timestamp }} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 32caa73..bee434f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,14 @@ RUN go mod download COPY . . ARG GO_BUILD_TAGS -RUN go build ${GO_BUILD_TAGS:+-tags="$GO_BUILD_TAGS"} -o /build/registry ./cmd/registry +ARG VERSION=dev +ARG GIT_COMMIT=unknown +ARG BUILD_TIME=unknown + +RUN go build \ + ${GO_BUILD_TAGS:+-tags="$GO_BUILD_TAGS"} \ + -ldflags="-X main.Version=${VERSION} -X main.GitCommit=${GIT_COMMIT} -X main.BuildTime=${BUILD_TIME}" \ + -o /build/registry ./cmd/registry FROM alpine:latest WORKDIR /app