diff --git a/.github/workflows/gofmt.yml b/.github/workflows/gofmt.yml index a929252e..5ceaec66 100644 --- a/.github/workflows/gofmt.yml +++ b/.github/workflows/gofmt.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go-version: [1.25.1] + go-version: [1.25.3] steps: - name: Checkout code diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0be9e2d4..5d9807ae 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go-version: ['1.25.1'] + go-version: [1.25.3] steps: - uses: actions/setup-go@v5 diff --git a/docker/dockerfile-api b/docker/dockerfile-api index 5a4f7547..ac4869a3 100644 --- a/docker/dockerfile-api +++ b/docker/dockerfile-api @@ -14,8 +14,12 @@ ARG BUILD_TAGS="posts,experience,profile,projects,social,talks,gus,gocanto" ARG BINARY_NAME=oullin_api # Base image digests +ARG GO_VERSION=1.25.3 +ARG GO_IMAGE_VARIANT=alpine3.22 +ARG GO_TOOLCHAIN=go1.25.3 ARG GOLANG_ALPINE_DIGEST=sha256:c3dc5d5e8cf34ccb2172fb8d1aa399aa13cd8b60d27bba891d18e3b436a0c5f6 -ARG ALPINE_DIGEST=sha256:4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412 +ARG ALPINE_VERSION=3.22 +ARG ALPINE_DIGEST=sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1 # Non-root user/group settings. ARG APP_USER=appuser @@ -38,9 +42,11 @@ ARG TZ=Asia/Singapore # ---------------------------------------------------------------------------------------------------------------------- # BUILDER STAGE # ---------------------------------------------------------------------------------------------------------------------- -FROM golang:1.25.3-alpine3.22@${GOLANG_ALPINE_DIGEST} AS builder +FROM golang:${GO_VERSION}-${GO_IMAGE_VARIANT}@${GOLANG_ALPINE_DIGEST} AS builder # Bring in the build args needed in this stage. +ARG GO_TOOLCHAIN +ENV GOTOOLCHAIN=${GO_TOOLCHAIN} ARG APP_DIR ARG BINARY_NAME ARG APP_VERSION @@ -86,7 +92,7 @@ RUN go build \ # ---------------------------------------------------------------------------------------------------------------------- # FINAL STAGE # ---------------------------------------------------------------------------------------------------------------------- -FROM alpine:3.22@${ALPINE_DIGEST} +FROM alpine:${ALPINE_VERSION}@${ALPINE_DIGEST} # Bring in the runtime args. ARG APP_USER diff --git a/go.mod b/go.mod index 2ffb13a8..642b8e8b 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/oullin -go 1.25.1 +go 1.25.3 require ( github.com/DATA-DOG/go-sqlmock v1.5.2 diff --git a/go.sum b/go.sum index f002e375..81962bc9 100644 --- a/go.sum +++ b/go.sum @@ -185,6 +185,8 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= +golang.org/toolchain v0.0.1-go1.25.3.linux-amd64 h1:OsvRiFtt0A9JsTaoQsnFK4wKOOAY2UtJvkOT+Djl7tQ= +golang.org/toolchain v0.0.1-go1.25.3.linux-amd64/go.mod h1:c/4eKWFBYMD/i1j7ipNwtrHQP02jj74611NzmDqwkJE= golang.org/x/image v0.32.0 h1:6lZQWq75h7L5IWNk0r+SCpUJ6tUVd3v4ZHnbRKLkUDQ= golang.org/x/image v0.32.0/go.mod h1:/R37rrQmKXtO6tYXAjtDLwQgFLHmhW+V6ayXlxzP2Pc= golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4=