mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2024-11-22 00:08:11 +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
|
||||
- maintenance
|
||||
|
||||
- package-ecosystem: "gomod"
|
||||
target-branch: main
|
||||
directory: "deployments/devel"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
day: "sunday"
|
||||
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
|
50
.github/workflows/golang.yaml
vendored
50
.github/workflows/golang.yaml
vendored
@ -51,26 +51,34 @@ jobs:
|
||||
- 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=$(./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 test
|
||||
build:
|
||||
name: Unit test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
name: Checkout code
|
||||
|
||||
- name: Build
|
||||
run: make docker-build
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
- name: Get Golang version
|
||||
id: vars
|
||||
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 test
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
- name: Get Golang version
|
||||
id: vars
|
||||
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:
|
||||
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-%:
|
||||
@echo "Running 'make $(*)' in container image $(BUILDIMAGE)"
|
||||
$(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
|
||||
#
|
||||
# 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.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
**/
|
||||
|
||||
# This Dockerfile is 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
|
||||
package main
|
||||
|
||||
// Define the tooling required to build the device plugin.
|
||||
import (
|
||||
_ "github.com/matryer/moq"
|
||||
)
|
@ -15,8 +15,8 @@
|
||||
|
||||
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
|
||||
|
@ -24,7 +24,7 @@ PACKAGE_REVISION := 1
|
||||
GOLANG_VERSION := $(shell ./hack/golang-version.sh)
|
||||
|
||||
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_SHORT ?= $(shell git rev-parse --short HEAD 2> /dev/null || echo "")
|
||||
|
Loading…
Reference in New Issue
Block a user