mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2024-11-25 21:39:10 +00:00
Merge pull request #597 from elezar/add-build-image-tooling
[no-relnotes] Use a local development image
This commit is contained in:
commit
ee4f1f4a24
7
.github/dependabot.yml
vendored
7
.github/dependabot.yml
vendored
@ -42,6 +42,13 @@ updates:
|
|||||||
- dependencies
|
- dependencies
|
||||||
- maintenance
|
- maintenance
|
||||||
|
|
||||||
|
- package-ecosystem: "gomod"
|
||||||
|
target-branch: main
|
||||||
|
directory: "deployments/devel"
|
||||||
|
schedule:
|
||||||
|
interval: "weekly"
|
||||||
|
day: "sunday"
|
||||||
|
|
||||||
- package-ecosystem: "github-actions"
|
- package-ecosystem: "github-actions"
|
||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
|
18
.github/workflows/golang.yaml
vendored
18
.github/workflows/golang.yaml
vendored
@ -67,10 +67,18 @@ jobs:
|
|||||||
go-version: ${{ env.GOLANG_VERSION }}
|
go-version: ${{ env.GOLANG_VERSION }}
|
||||||
- run: make test
|
- run: make test
|
||||||
build:
|
build:
|
||||||
|
name: Build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- name: Checkout code
|
||||||
name: Checkout code
|
uses: actions/checkout@v4
|
||||||
|
- name: Get Golang version
|
||||||
- name: Build
|
id: vars
|
||||||
run: make docker-build
|
run: |
|
||||||
|
GOLANG_VERSION=$(./hack/golang-version.sh)
|
||||||
|
echo "GOLANG_VERSION=${GOLANG_VERSION##GOLANG_VERSION ?= }" >> $GITHUB_ENV
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: ${{ env.GOLANG_VERSION }}
|
||||||
|
- run: make build
|
||||||
|
11
Makefile
11
Makefile
@ -112,6 +112,17 @@ coverage: test
|
|||||||
generate:
|
generate:
|
||||||
go generate $(MODULE)/...
|
go generate $(MODULE)/...
|
||||||
|
|
||||||
|
# Generate an image for containerized builds
|
||||||
|
# Note: This image is local only
|
||||||
|
.PHONY: .build-image
|
||||||
|
.build-image:
|
||||||
|
make -f deployments/devel/Makefile .build-image
|
||||||
|
|
||||||
|
ifeq ($(BUILD_DEVEL_IMAGE),yes)
|
||||||
|
$(DOCKER_TARGETS): .build-image
|
||||||
|
.shell: .build-image
|
||||||
|
endif
|
||||||
|
|
||||||
$(DOCKER_TARGETS): docker-%:
|
$(DOCKER_TARGETS): docker-%:
|
||||||
@echo "Running 'make $(*)' in container image $(BUILDIMAGE)"
|
@echo "Running 'make $(*)' in container image $(BUILDIMAGE)"
|
||||||
$(DOCKER) run \
|
$(DOCKER) run \
|
||||||
|
27
deployments/devel/Dockerfile
Normal file
27
deployments/devel/Dockerfile
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
# This Dockerfile is also used to define the golang version used in this project
|
||||||
|
# This allows dependabot to manage this version in addition to other images.
|
||||||
|
FROM golang:1.22.1
|
||||||
|
|
||||||
|
WORKDIR /work
|
||||||
|
COPY * .
|
||||||
|
|
||||||
|
RUN make install-tools
|
||||||
|
|
||||||
|
# We need to set the /work directory as a safe directory.
|
||||||
|
# This allows git commands to run in the container.
|
||||||
|
RUN git config --file=/.gitconfig --add safe.directory /work
|
||||||
|
|
36
deployments/devel/Makefile
Normal file
36
deployments/devel/Makefile
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# Copyright 2024 NVIDIA CORPORATION
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
download:
|
||||||
|
@echo Download go.mod dependencies
|
||||||
|
@go mod download
|
||||||
|
|
||||||
|
install-tools: download
|
||||||
|
@echo Installing tools from tools.go
|
||||||
|
@cat tools.go | grep _ | awk -F'"' '{print $$2}' | xargs -tI % go install %
|
||||||
|
|
||||||
|
|
||||||
|
DOCKER ?= docker
|
||||||
|
-include $(CURDIR)/versions.mk
|
||||||
|
|
||||||
|
DOCKERFILE_DEVEL = deployments/devel/Dockerfile
|
||||||
|
DOCKERFILE_CONTEXT = deployments/devel
|
||||||
|
|
||||||
|
.PHONY: .build-image
|
||||||
|
.build-image:
|
||||||
|
$(DOCKER) build \
|
||||||
|
--progress=plain \
|
||||||
|
--tag $(BUILDIMAGE) \
|
||||||
|
-f $(DOCKERFILE_DEVEL) \
|
||||||
|
$(DOCKERFILE_CONTEXT)
|
10
deployments/devel/go.mod
Normal file
10
deployments/devel/go.mod
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
module github.com/NVIDIA/k8s-device-plugin/deployments/devel
|
||||||
|
|
||||||
|
go 1.22
|
||||||
|
|
||||||
|
require github.com/matryer/moq v0.3.4
|
||||||
|
|
||||||
|
require (
|
||||||
|
golang.org/x/mod v0.14.0 // indirect
|
||||||
|
golang.org/x/tools v0.17.0 // indirect
|
||||||
|
)
|
10
deployments/devel/go.sum
Normal file
10
deployments/devel/go.sum
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
github.com/matryer/moq v0.3.4 h1:czCFIos9rI2tyOehN9ktc/6bQ76N9J4xQ2n3dk063ac=
|
||||||
|
github.com/matryer/moq v0.3.4/go.mod h1:wqm9QObyoMuUtH81zFfs3EK6mXEcByy+TjvSROOXJ2U=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
|
||||||
|
golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||||
|
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
||||||
|
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
|
golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc=
|
||||||
|
golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps=
|
@ -1,3 +1,7 @@
|
|||||||
|
//go:build tools
|
||||||
|
// +build tools
|
||||||
|
|
||||||
|
/**
|
||||||
# Copyright 2024 NVIDIA CORPORATION
|
# Copyright 2024 NVIDIA CORPORATION
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -11,9 +15,11 @@
|
|||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
**/
|
||||||
|
|
||||||
# This Dockerfile is used to define the golang version used in this
|
package main
|
||||||
# project.
|
|
||||||
# This allows dependabot to manage this version in addition to other
|
// Define the tooling required to build the device plugin.
|
||||||
# images.
|
import (
|
||||||
FROM golang:1.22.1
|
_ "github.com/matryer/moq"
|
||||||
|
)
|
@ -15,8 +15,8 @@
|
|||||||
|
|
||||||
SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../scripts && pwd )"
|
SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../scripts && pwd )"
|
||||||
|
|
||||||
DOCKERFILE_ROOT=${SCRIPTS_DIR}/../deployments/container
|
DOCKERFILE_ROOT=${SCRIPTS_DIR}/../deployments/devel
|
||||||
|
|
||||||
GOLANG_VERSION=$(grep -E "^FROM golang:.*$" ${DOCKERFILE_ROOT}/Dockerfile.golang | grep -oE "[0-9\.]+")
|
GOLANG_VERSION=$(grep -E "^FROM golang:.*$" ${DOCKERFILE_ROOT}/Dockerfile | grep -oE "[0-9\.]+")
|
||||||
|
|
||||||
echo $GOLANG_VERSION
|
echo $GOLANG_VERSION
|
||||||
|
@ -24,7 +24,7 @@ PACKAGE_REVISION := 1
|
|||||||
GOLANG_VERSION := $(shell ./hack/golang-version.sh)
|
GOLANG_VERSION := $(shell ./hack/golang-version.sh)
|
||||||
|
|
||||||
BUILDIMAGE_TAG ?= devel-go$(GOLANG_VERSION)
|
BUILDIMAGE_TAG ?= devel-go$(GOLANG_VERSION)
|
||||||
BUILDIMAGE ?= ghcr.io/nvidia/k8s-test-infra:$(BUILDIMAGE_TAG)
|
BUILDIMAGE ?= $(LIB_NAME):$(BUILDIMAGE_TAG)
|
||||||
|
|
||||||
GIT_COMMIT ?= $(shell git describe --match="" --dirty --long --always --abbrev=40 2> /dev/null || echo "")
|
GIT_COMMIT ?= $(shell git describe --match="" --dirty --long --always --abbrev=40 2> /dev/null || echo "")
|
||||||
GIT_COMMIT_SHORT ?= $(shell git rev-parse --short HEAD 2> /dev/null || echo "")
|
GIT_COMMIT_SHORT ?= $(shell git rev-parse --short HEAD 2> /dev/null || echo "")
|
||||||
|
Loading…
Reference in New Issue
Block a user