Skip to content

Commit

Permalink
Use a debian_version var
Browse files Browse the repository at this point in the history
Signed-off-by: Nicolas-Peiffer <[email protected]>
  • Loading branch information
Nicolas-Peiffer committed Oct 31, 2024
1 parent 3aae7fe commit 1d0f73b
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 3 deletions.
31 changes: 30 additions & 1 deletion .github/workflows/base-container-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,30 @@ jobs:
- name: Checkout source code
uses: actions/checkout@v4

- name: Extract Versions from Containerfile
- name: Extract Tools Versions from Containerfile
id: extract
run: |
# Extract values from the Containerfile
GOLANG_VERSION=$(grep -m1 'ARG GOLANG_VERSION=' $CONTAINERFILE_NAME | cut -d'=' -f2)
echo "GOLANG_VERSION=${GOLANG_VERSION}" >> $GITHUB_OUTPUT
GORELEASER_VERSION=$(grep -m1 'ARG GORELEASER_VERSION=' $CONTAINERFILE_NAME | cut -d'=' -f2)
echo "GORELEASER_VERSION=${GORELEASER_VERSION}" >> $GITHUB_OUTPUT
TRIVY_VERSION=$(grep -m1 'ARG TRIVY_VERSION=' $CONTAINERFILE_NAME | cut -d'=' -f2)
echo "TRIVY_VERSION=${TRIVY_VERSION}" >> $GITHUB_OUTPUT
COSIGN_VERSION=$(grep -m1 'ARG COSIGN_VERSION=' $CONTAINERFILE_NAME | cut -d'=' -f2)
echo "COSIGN_VERSION=${COSIGN_VERSION}" >> $GITHUB_OUTPUT
KO_VERSION=$(grep -m1 'ARG KO_VERSION=' $CONTAINERFILE_NAME | cut -d'=' -f2)
echo "KO_VERSION=${KO_VERSION}" >> $GITHUB_OUTPUT
SYFT_VERSION=$(grep -m1 'ARG SYFT_VERSION=' $CONTAINERFILE_NAME | cut -d'=' -f2)
echo "SYFT_VERSION=${SYFT_VERSION}" >> $GITHUB_OUTPUT
DEBIAN_VERSION=$(grep -m1 'ARG DEBIAN_VERSION=' $CONTAINERFILE_NAME | cut -d'=' -f2)
echo "DEBIAN_VERSION=${DEBIAN_VERSION}" >> $GITHUB_OUTPUT
- name: Container metadata and tags
uses: docker/metadata-action@v5
Expand All @@ -45,8 +61,21 @@ jobs:
images: ghcr.io/${{ github.repository }}-base
tags: |
type=ref,event=branch
# use tools version as tags
type=raw,value=golang-${{ steps.extract.outputs.golang_version }}
type=raw,value=goreleaser-${{ steps.extract.outputs.goreleaser_version }}
type=raw,value=cosign-${{ steps.extract.outputs.cosign_version }}
type=raw,value=ko-${{ steps.extract.outputs.ko_version }}
type=raw,value=trivy-${{ steps.extract.outputs.trivy_version }}
type=raw,value=syft-${{ steps.extract.outputs.syft_version }}
type=raw,value=golang-${{ steps.extract.outputs.golang_version }}-${{ steps.extract.outputs.debian_version}}
type=raw,value=goreleaser-${{ steps.extract.outputs.goreleaser_version }}-${{ steps.extract.outputs.debian_version}}
type=raw,value=cosign-${{ steps.extract.outputs.cosign_version }}-${{ steps.extract.outputs.debian_version}}
type=raw,value=ko-${{ steps.extract.outputs.ko_version }}-${{ steps.extract.outputs.debian_version}}
type=raw,value=trivy-${{ steps.extract.outputs.trivy_version }}-${{ steps.extract.outputs.debian_version}}
type=raw,value=syft-${{ steps.extract.outputs.syft_version }}-${{ steps.extract.outputs.debian_version}}
# minimal (short sha)
type=sha
# full length sha
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,15 @@ ARG KO_VERSION=0.16.0
# goreleaser v2.1.0 ships with go1.22.5
ARG GORELEASER_VERSION=2.1.0

ARG DEBIAN_VERSION=bookworm

# Builder image's registry
# A Debian Bookworm based GoLang image is chosen over "docker.io/goreleaser/goreleaser" Alpine based
# goreleaser official image (https://hub.docker.com/r/goreleaser/goreleaser),
# because debian uses glibc and Alpine uses libc musl.
ARG BUILDER_IMAGE_REGISTRY=docker.io/library
ARG BUILDER_IMAGE_NAME=golang
ARG BUILDER_IMAGE_TAG=${GOLANG_VERSION}-bookworm
ARG BUILDER_IMAGE_TAG=${GOLANG_VERSION}-${DEBIAN_VERSION}

# For OCI labels
ARG BASE_REGISTRY=${BUILDER_IMAGE_REGISTRY}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,15 @@ ARG KO_VERSION=0.16.0
# goreleaser v2.1.0 ships with go1.22.5
ARG GORELEASER_VERSION=2.1.0

ARG DEBIAN_VERSION=bookworm

# Builder image's registry
# A Debian Bookworm based GoLang image is chosen over "docker.io/goreleaser/goreleaser" Alpine based
# goreleaser official image (https://hub.docker.com/r/goreleaser/goreleaser),
# because debian uses glibc and Alpine uses libc musl.
ARG BUILDER_IMAGE_REGISTRY=docker.io/library
ARG BUILDER_IMAGE_NAME=golang
ARG BUILDER_IMAGE_TAG=${GOLANG_VERSION}-bookworm
ARG BUILDER_IMAGE_TAG=${GOLANG_VERSION}-${DEBIAN_VERSION}

# For OCI labels
ARG BASE_REGISTRY=${BUILDER_IMAGE_REGISTRY}
Expand Down

0 comments on commit 1d0f73b

Please sign in to comment.