diff --git a/.github/workflows/golang.yaml b/.github/workflows/golang.yaml index 38a77a33..fc5acb4b 100644 --- a/.github/workflows/golang.yaml +++ b/.github/workflows/golang.yaml @@ -16,6 +16,9 @@ name: Golang on: pull_request: + types: + - opened + - synchronize branches: - main - release-* @@ -29,28 +32,45 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - + name: Checkout code + - name: Get Golang version + id: vars + run: | + GOLANG_VERSION=$( grep "GOLANG_VERSION :=" versions.mk ) + echo "GOLANG_VERSION=${GOLANG_VERSION##GOLANG_VERSION := }" >> $GITHUB_ENV + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOLANG_VERSION }} - name: Lint uses: golangci/golangci-lint-action@v4 with: version: latest args: -v --timeout 5m skip-cache: true + - name: Check golang modules + run: make check-vendor test: name: Unit test runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 + - name: Get Golang version + id: vars + run: | + GOLANG_VERSION=$( grep "GOLANG_VERSION :=" versions.mk ) + echo "GOLANG_VERSION=${GOLANG_VERSION##GOLANG_VERSION := }" >> $GITHUB_ENV - name: Install Go uses: actions/setup-go@v5 with: - go-version: '1.20' + go-version: ${{ env.GOLANG_VERSION }} - run: make test build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + name: Checkout code - name: Build run: make docker-build diff --git a/Makefile b/Makefile index 629b978b..dd3e3a5e 100644 --- a/Makefile +++ b/Makefile @@ -38,8 +38,8 @@ EXAMPLE_TARGETS := $(patsubst %,example-%, $(EXAMPLES)) CMDS := $(patsubst ./cmd/%/,%,$(sort $(dir $(wildcard ./cmd/*/)))) CMD_TARGETS := $(patsubst %,cmd-%, $(CMDS)) -CHECK_TARGETS := golangci-lint -MAKE_TARGETS := binaries build check fmt lint-internal test examples cmds coverage generate licenses $(CHECK_TARGETS) +CHECK_TARGETS := lint +MAKE_TARGETS := binaries build check fmt test examples cmds coverage generate licenses vendor check-vendor $(CHECK_TARGETS) TARGETS := $(MAKE_TARGETS) $(EXAMPLE_TARGETS) $(CMD_TARGETS) @@ -87,9 +87,17 @@ goimports: go list -f {{.Dir}} $(MODULE)/... \ | xargs goimports -local $(MODULE) -w -golangci-lint: +lint: golangci-lint run ./... +vendor: + go mod tidy + go mod vendor + go mod verify + +check-vendor: vendor + git diff --quiet HEAD -- go.mod go.sum vendor + licenses: go-licenses csv $(MODULE)/... diff --git a/versions.mk b/versions.mk index 8a3872e7..c9dae147 100644 --- a/versions.mk +++ b/versions.mk @@ -28,7 +28,7 @@ NVIDIA_DOCKER_VERSION := 2.14.0 NVIDIA_CONTAINER_RUNTIME_VERSION := 3.14.0 CUDA_VERSION := 12.3.2 -GOLANG_VERSION := 1.20.5 +GOLANG_VERSION := 1.22.1 BUILDIMAGE_TAG ?= devel-go$(GOLANG_VERSION) BUILDIMAGE ?= ghcr.io/nvidia/k8s-test-infra:$(BUILDIMAGE_TAG)