diff --git a/images/scanner-build.Dockerfile b/images/scanner-build.Dockerfile index b0f098e6..4941259b 100644 --- a/images/scanner-build.Dockerfile +++ b/images/scanner-build.Dockerfile @@ -36,12 +36,12 @@ RUN dnf update -y && \ rm -rf /var/cache/dnf /var/cache/yum ARG GOLANG_VERSION=1.24.4 -ARG GOLANG_SHA256=77e5da33bb72aeaef1ba4418b6fe511bc4d041873cbf82e5aa6318740df98717 +ARG GOLANG_SHA256_AMD64=77e5da33bb72aeaef1ba4418b6fe511bc4d041873cbf82e5aa6318740df98717 ENV GOPATH /go ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH RUN url="https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ wget --no-verbose -O go.tgz "$url" && \ - echo "${GOLANG_SHA256} *go.tgz" | sha256sum -c - && \ + echo "${GOLANG_SHA256_AMD64} *go.tgz" | sha256sum -c - && \ tar -C /usr/local -xzf go.tgz && \ rm go.tgz && \ mkdir -p "$GOPATH/src" "$GOPATH/bin" && \ diff --git a/images/stackrox-build.Dockerfile b/images/stackrox-build.Dockerfile index 5dc547af..a0c216a9 100644 --- a/images/stackrox-build.Dockerfile +++ b/images/stackrox-build.Dockerfile @@ -58,11 +58,13 @@ RUN dnf update -y && \ rm -rf /var/cache/dnf /var/cache/yum ARG GOLANG_VERSION=1.24.4 +ARG GOLANG_SHA256_AMD64=77e5da33bb72aeaef1ba4418b6fe511bc4d041873cbf82e5aa6318740df98717 +ARG GOLANG_SHA256_ARM64=d5501ee5aca0f258d5fe9bfaed401958445014495dc115f202d43d5210b45241 ENV GOPATH=/go ENV PATH=$GOPATH/bin:/usr/local/go/bin:$PATH RUN set -e; case "$TARGETARCH" in \ - "amd64" ) GOLANG_SHA256="77e5da33bb72aeaef1ba4418b6fe511bc4d041873cbf82e5aa6318740df98717";; \ - "arm64") GOLANG_SHA256="d5501ee5aca0f258d5fe9bfaed401958445014495dc115f202d43d5210b45241";; \ + "amd64" ) GOLANG_SHA256="$GOLANG_SHA256_AMD64";; \ + "arm64") GOLANG_SHA256="$GOLANG_SHA256_ARM64";; \ *) echo "Unsupported $TARGETARCH"; exit 1;; \ esac && \ wget --no-verbose -O go.tgz "https://dl.google.com/go/go${GOLANG_VERSION}.linux-${TARGETARCH}.tar.gz" && \ diff --git a/images/stackrox-ui-test.Dockerfile b/images/stackrox-ui-test.Dockerfile index ebc4edbf..373b7c2a 100644 --- a/images/stackrox-ui-test.Dockerfile +++ b/images/stackrox-ui-test.Dockerfile @@ -73,12 +73,12 @@ RUN dnf update -y \ && rm -rf /var/cache/dnf /var/cache/yum ARG GOLANG_VERSION=1.24.4 -ARG GOLANG_SHA256=77e5da33bb72aeaef1ba4418b6fe511bc4d041873cbf82e5aa6318740df98717 +ARG GOLANG_SHA256_AMD64=77e5da33bb72aeaef1ba4418b6fe511bc4d041873cbf82e5aa6318740df98717 ENV GOPATH /go ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH RUN url="https://dl.google.com/go/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ wget --no-verbose -O go.tgz "$url" && \ - echo "${GOLANG_SHA256} *go.tgz" | sha256sum -c - && \ + echo "${GOLANG_SHA256_AMD64} *go.tgz" | sha256sum -c - && \ tar -C /usr/local -xzf go.tgz && \ rm go.tgz && \ mkdir -p "$GOPATH/src" "$GOPATH/bin" && \ diff --git a/scripts/bump_go_version.sh b/scripts/bump_go_version.sh index b82dc5de..c5eddc01 100755 --- a/scripts/bump_go_version.sh +++ b/scripts/bump_go_version.sh @@ -25,16 +25,30 @@ function update_dockerfiles() { # Extract SHA256 for linux-amd64 # The HTML structure looks like: ...go1.24.6.linux-amd64.tar.gz...SHA256_HASH... - SHA256=$(echo "$GO_DL_PAGE" | grep -A 50 "go${TARGET_VERSION}.linux-amd64.tar.gz" | sed -n 's/.*\([a-f0-9]\{64\}\)<\/tt>.*/\1/p' | head -1) + SHA256_AMD64=$(echo "$GO_DL_PAGE" | grep -A 50 "go${TARGET_VERSION}.linux-amd64.tar.gz" | sed -n 's/.*\([a-f0-9]\{64\}\)<\/tt>.*/\1/p' | head -1) - if [ -z "$SHA256" ]; then - error "Failed to retrieve SHA256 checksum for Go version $TARGET_VERSION" + # Extract SHA256 for linux-arm64 + SHA256_ARM64=$(echo "$GO_DL_PAGE" | grep -A 50 "go${TARGET_VERSION}.linux-arm64.tar.gz" | sed -n 's/.*\([a-f0-9]\{64\}\)<\/tt>.*/\1/p' | head -1) + + if [ -z "$SHA256_AMD64" ]; then + error "Failed to retrieve SHA256 checksum for Go version $TARGET_VERSION (amd64)" + error "Please verify the version exists at https://go.dev/dl/" + error "Note: Archived versions may be further down the page" + exit 1 + fi + + if [ -z "$SHA256_ARM64" ]; then + error "Failed to retrieve SHA256 checksum for Go version $TARGET_VERSION (arm64)" error "Please verify the version exists at https://go.dev/dl/" error "Note: Archived versions may be further down the page" exit 1 fi - info "Found SHA256: $SHA256" + info "Found SHA256 (amd64): $SHA256_AMD64" + info "Found SHA256 (arm64): $SHA256_ARM64" + + # For backwards compatibility, keep SHA256 as the amd64 value + SHA256="$SHA256_AMD64" # Find all Dockerfiles that contain GOLANG_VERSION info "Finding Dockerfiles with GOLANG_VERSION..." @@ -67,11 +81,16 @@ function update_dockerfiles() { warning " GOLANG_VERSION not found in $dockerfile" fi - # Update GOLANG_SHA256 - if grep -q "ARG GOLANG_SHA256=" "$dockerfile"; then - sed -i.bak "s/ARG GOLANG_SHA256=.*/ARG GOLANG_SHA256=${SHA256}/" "$dockerfile" - else - warning " GOLANG_SHA256 not found in $dockerfile" + # Update GOLANG_SHA256_AMD64 + if grep -q "ARG GOLANG_SHA256_AMD64=" "$dockerfile"; then + sed -i.bak "s/ARG GOLANG_SHA256_AMD64=.*/ARG GOLANG_SHA256_AMD64=${SHA256_AMD64}/" "$dockerfile" + info " Updated GOLANG_SHA256_AMD64" + fi + + # Update GOLANG_SHA256_ARM64 (if present) + if grep -q "ARG GOLANG_SHA256_ARM64=" "$dockerfile"; then + sed -i.bak "s/ARG GOLANG_SHA256_ARM64=.*/ARG GOLANG_SHA256_ARM64=${SHA256_ARM64}/" "$dockerfile" + info " Updated GOLANG_SHA256_ARM64" fi # Remove backup files @@ -98,11 +117,13 @@ function create_pr() { # Commit the changes COMMIT_MSG="Bump Go version to ${TARGET_VERSION} - Updates GOLANG_VERSION and GOLANG_SHA256 across all Docker images. +Updates GOLANG_VERSION and SHA256 values across all Docker images. + +- GOLANG_VERSION: ${TARGET_VERSION} +- GOLANG_SHA256_AMD64: ${SHA256_AMD64} +- GOLANG_SHA256_ARM64: ${SHA256_ARM64} - - GOLANG_VERSION: ${TARGET_VERSION} - - GOLANG_SHA256: ${SHA256} - - Archive: go${TARGET_VERSION}.linux-amd64.tar.gz" +Archives: go${TARGET_VERSION}.linux-{amd64,arm64}.tar.gz" info "Committing changes..." git commit -m "$COMMIT_MSG" @@ -122,11 +143,13 @@ function create_pr() { ## Changes - Updated \`GOLANG_VERSION\` to ${TARGET_VERSION} -- Updated \`GOLANG_SHA256\` to ${SHA256} +- Updated \`GOLANG_SHA256_AMD64\` to ${SHA256_AMD64} +- Updated \`GOLANG_SHA256_ARM64\` to ${SHA256_ARM64} (where applicable) ## Verification -- Archive: \`go${TARGET_VERSION}.linux-amd64.tar.gz\` -- SHA256: \`${SHA256}\` +- Archives: \`go${TARGET_VERSION}.linux-{amd64,arm64}.tar.gz\` +- SHA256 (amd64): \`${SHA256_AMD64}\` +- SHA256 (arm64): \`${SHA256_ARM64}\` - Source: https://go.dev/dl/ ## Affected Files