diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d008c55..f97ce96 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,10 +14,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up Go 1.x - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: 'go.mod' @@ -36,10 +36,10 @@ jobs: needs: [ tests ] steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up Go 1.x - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: 'go.mod' @@ -54,11 +54,11 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: golangci-lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v9 - name: Prepare a snapshot release if: ${{ !startsWith(github.ref, 'refs/tags/v') }} - uses: goreleaser/goreleaser-action@v3 + uses: goreleaser/goreleaser-action@v6 with: version: latest args: release --clean --snapshot @@ -68,7 +68,7 @@ jobs: - name: Release a new version if: ${{ startsWith(github.ref, 'refs/tags/v') }} - uses: goreleaser/goreleaser-action@v4 + uses: goreleaser/goreleaser-action@v6 with: version: latest args: release --clean diff --git a/go.mod b/go.mod index 2da1184..f07e30a 100644 --- a/go.mod +++ b/go.mod @@ -1,22 +1,20 @@ module lprobe -go 1.24.0 - -toolchain go1.24.8 +go 1.26.0 require ( github.com/spiffe/go-spiffe/v2 v2.6.0 - golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 + golang.org/x/exp v0.0.0-20260209203927-2842357ff358 google.golang.org/grpc v1.78.0 ) require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/go-jose/go-jose/v4 v4.1.3 // indirect - golang.org/x/net v0.48.0 // indirect + golang.org/x/net v0.50.0 // indirect golang.org/x/sync v0.19.0 // indirect - golang.org/x/sys v0.40.0 // indirect - golang.org/x/text v0.33.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b // indirect + golang.org/x/sys v0.41.0 // indirect + golang.org/x/text v0.34.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect google.golang.org/protobuf v1.36.11 // indirect ) diff --git a/go.sum b/go.sum index a163e2d..e5b752b 100644 --- a/go.sum +++ b/go.sum @@ -32,20 +32,20 @@ go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6 go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= -golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 h1:fQsdNF2N+/YewlRZiricy4P1iimyPKZ/xwniHj8Q2a0= -golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU= -golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= -golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= +golang.org/x/exp v0.0.0-20260209203927-2842357ff358 h1:kpfSV7uLwKJbFSEgNhWzGSL47NDSF/5pYYQw1V0ub6c= +golang.org/x/exp v0.0.0-20260209203927-2842357ff358/go.mod h1:R3t0oliuryB5eenPWl3rrQxwnNM3WTwnsRZZiXLAAW8= +golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60= +golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= -golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= -golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= -golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= +golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= +golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= +golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b h1:Mv8VFug0MP9e5vUxfBcE3vUkV6CImK3cMNMIDFjmzxU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc= google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= diff --git a/grpc_healthcheck.go b/grpc_healthcheck.go index 699f082..51cbc16 100644 --- a/grpc_healthcheck.go +++ b/grpc_healthcheck.go @@ -113,7 +113,11 @@ func grpchealthprobe(flAddr string) (string, int) { return "ERR", StatusConnectionFailure } connDuration := time.Since(connStart) - defer conn.Close() + defer func() { + if err := conn.Close(); err != nil { + log.Printf("error closing gRPC connection: %v", err) + } + }() if flVerbose { log.Printf("connection established (took %v)", connDuration) } diff --git a/http_healthcheck.go b/http_healthcheck.go index 33ab32d..88f76a8 100644 --- a/http_healthcheck.go +++ b/http_healthcheck.go @@ -83,7 +83,11 @@ func httpHealthCheck() (error) { log.Printf("failed to execute http request. error=%v", respErr) return respErr } - defer httpResponse.Body.Close() + defer func() { + if err := httpResponse.Body.Close(); err != nil { + log.Printf("failed to close http response body. error=%v", err) + } + }() // check http response code if !validHTTPCodes[httpResponse.StatusCode] { diff --git a/main.go b/main.go index ed8d105..59a141b 100644 --- a/main.go +++ b/main.go @@ -7,14 +7,15 @@ import ( func main() { - if flMode == "http" { + switch flMode { + case "http": // HTTP check err := httpHealthCheck() if err != nil { fmt.Printf("Error: %v", err) os.Exit(1) } - } else if flMode == "grpc" { + case "grpc": // gRPC check status := grpcHealthCheck() if status != "" { @@ -22,7 +23,7 @@ func main() { os.Exit(1) } os.Exit(0) - } else { + default: // unkown check fmt.Printf("Error: Unsupported -mode. Please use one of %v", getSupportedModes()) os.Exit(1) diff --git a/scripts/test.sh b/scripts/test.sh index adab9f9..d4724d3 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash +export DOCKER_DEFAULT_PLATFORM="linux/amd64" + # set -e rm -rf ./lprobe go build