Skip to content

Commit 221e500

Browse files
authored
Makefile refactoring to minimize the number of targets (#397)
* Renamed EPP Dockerfile for naming consistency Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> * Make use of % in targets to minimize number of targets Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> * make build/test now builds/tests the sidecar as well Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> --------- Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>
1 parent 9ca9fe6 commit 221e500

File tree

4 files changed

+36
-42
lines changed

4 files changed

+36
-42
lines changed

.github/workflows/ci-pr-checks.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
- name: Run make test
4949
shell: bash
5050
run: |
51-
make test sidecar-test
51+
make test
5252
5353
- name: Archive code coverage results
5454
uses: actions/upload-artifact@v4
@@ -59,4 +59,4 @@ jobs:
5959
- name: Run make build
6060
shell: bash
6161
run: |
62-
make build sidecar-build
62+
make build

.github/workflows/ci-release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
- name: Build and push EPP image
4141
uses: ./.github/actions/docker-build-and-push
4242
with:
43-
docker-file: Dockerfile
43+
docker-file: Dockerfile.epp
4444
tag: ${{ steps.tag.outputs.tag }}
4545
image-name: ${{ steps.version.outputs.project_name }}
4646
registry: ghcr.io/llm-d
File renamed without changes.

Makefile

Lines changed: 33 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ IMAGE_TAG_BASE ?= $(IMAGE_REGISTRY)/$(PROJECT_NAME)
1414
EPP_TAG ?= dev
1515
IMG = $(IMAGE_TAG_BASE):$(EPP_TAG)
1616
SIDECAR_TAG ?= dev
17-
SIDECAR_IMAGE_TAG_BASE ?= ghcr.io/llm-d/$(SIDECAR_IMAGE_NAME)
17+
SIDECAR_IMAGE_TAG_BASE ?= $(IMAGE_REGISTRY)/$(SIDECAR_IMAGE_NAME)
1818
SIDECAR_IMG = $(SIDECAR_IMAGE_TAG_BASE):$(SIDECAR_TAG)
1919
NAMESPACE ?= hc4ai-operator
2020

@@ -51,6 +51,16 @@ BUILD_REF ?= $(shell git describe --abbrev=0 2>/dev/null)
5151
# go source files
5252
SRC = $(shell find . -type f -name '*.go')
5353

54+
# Internal variables for generic targets
55+
epp_IMAGE = $(IMG)
56+
sidecar_IMAGE = $(SIDECAR_IMG)
57+
epp_NAME = epp
58+
sidecar_NAME = $(SIDECAR_NAME)
59+
epp_LDFLAGS = -ldflags="$(LDFLAGS)"
60+
sidecar_LDFLAGS =
61+
epp_TEST_FILES = go list ./... | grep -v /test/ | grep -v ./pkg/sidecar/
62+
sidecar_TEST_FILES = go list ./pkg/sidecar/...
63+
5464
.PHONY: help
5565
help: ## Print help
5666
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
@@ -61,7 +71,7 @@ LDFLAGS ?= -extldflags '-L$(shell pwd)/lib'
6171
CGO_ENABLED=1
6272
TOKENIZER_LIB = lib/libtokenizers.a
6373
# Extract RELEASE_VERSION from Dockerfile
64-
TOKENIZER_VERSION := $(shell grep '^ARG RELEASE_VERSION=' Dockerfile | cut -d'=' -f2)
74+
TOKENIZER_VERSION := $(shell grep '^ARG RELEASE_VERSION=' Dockerfile.epp | cut -d'=' -f2)
6575

6676
.PHONY: download-tokenizer
6777
download-tokenizer: $(TOKENIZER_LIB)
@@ -89,9 +99,12 @@ format: ## Format Go source files
8999
test: test-unit test-e2e ## Run unit tests and e2e tests
90100

91101
.PHONY: test-unit
92-
test-unit: download-tokenizer install-dependencies ## Run unit tests
102+
test-unit: epp-test-unit sidecar-test-unit
103+
104+
.PHONY: %-test-unit
105+
%-test-unit: download-tokenizer install-dependencies ## Run unit tests
93106
@printf "\033[33;1m==== Running Unit Tests ====\033[0m\n"
94-
go test -ldflags="$(LDFLAGS)" -cover -coverprofile=coverage.out -v $$(echo $$(go list ./... | grep -v /test/))
107+
go test $($*_LDFLAGS) -cover -coverprofile=coverage-$*.out -v $$($($*_TEST_FILES) | tr '\n' ' ')
95108

96109
.PHONY: test-integration
97110
test-integration: download-tokenizer install-dependencies ## Run integration tests
@@ -108,14 +121,6 @@ post-deploy-test: ## Run post deployment tests
108121
echo Success!
109122
@echo "Post-deployment tests passed."
110123

111-
.PHONY: sidecar-test
112-
sidecar-test: sidecar-test-unit ## Run Sidecar tests
113-
114-
.PHONY: sidecar-test-unit
115-
sidecar-test-unit: ## Run Sidecar unit tests
116-
@printf "\033[33;1m==== Running tests ====\033[0m\n"
117-
go test -v $$(echo $$(go list ./pkg/sidecar/...)) -ginkgo.v
118-
119124
.PHONY: lint
120125
lint: check-golangci-lint check-typos ## Run lint
121126
@printf "\033[33;1m==== Running linting ====\033[0m\n"
@@ -125,47 +130,36 @@ lint: check-golangci-lint check-typos ## Run lint
125130
##@ Build
126131

127132
.PHONY: build
128-
build: check-go install-dependencies download-tokenizer ## Build the project
129-
@printf "\033[33;1m==== Building ====\033[0m\n"
130-
go build -ldflags="$(LDFLAGS)" -o bin/epp cmd/epp/main.go
133+
build: epp-build sidecar-build ## Build the project
131134

132-
.PHONY: sidecar-build
133-
sidecar-build: check-go ## Build the Sidecar
134-
@printf "\033[33;1m==== Building the Sidecar ====\033[0m\n"
135-
go build -o bin/$(SIDECAR_NAME) cmd/$(SIDECAR_NAME)/main.go
135+
.PHONY: %-build
136+
%-build: check-go install-dependencies download-tokenizer ## Build the project
137+
@printf "\033[33;1m==== Building ====\033[0m\n"
138+
go build $($*_LDFLAGS) -o bin/$($*_NAME) cmd/$($*_NAME)/main.go
136139

137140
##@ Container Build/Push
138141

139142
.PHONY: image-build
140-
image-build: check-container-tool ## Build Docker image ## Build Docker image using $(CONTAINER_TOOL)
141-
@printf "\033[33;1m==== Building Docker image $(IMG) ====\033[0m\n"
143+
image-build: epp-image-build sidecar-image-build ## Build Docker image
144+
145+
.PHONY: %-image-build
146+
%-image-build: check-container-tool ## Build Docker image ## Build Docker image using $(CONTAINER_TOOL)
147+
@printf "\033[33;1m==== Building Docker image $($*_IMAGE) ====\033[0m\n"
142148
$(CONTAINER_TOOL) build \
143149
--platform linux/$(TARGETARCH) \
144150
--build-arg TARGETOS=linux \
145151
--build-arg TARGETARCH=$(TARGETARCH) \
146152
--build-arg COMMIT_SHA=${GIT_COMMIT_SHA} \
147153
--build-arg BUILD_REF=${BUILD_REF} \
148-
-t $(IMG) .
154+
-t $($*_IMAGE) -f Dockerfile.$* .
149155

150156
.PHONY: image-push
151-
image-push: check-container-tool ## Push Docker image $(IMG) to registry
152-
@printf "\033[33;1m==== Pushing Docker image $(IMG) ====\033[0m\n"
153-
$(CONTAINER_TOOL) push $(IMG)
154-
155-
.PHONY: sidecar-image-build
156-
sidecar-image-build: check-container-tool ## Build Sidecar Docker image ## Build Sidecar Docker image using $(CONTAINER_TOOL)
157-
@printf "\033[33;1m==== Building Sidecar Docker image $(SIDECAR_IMG) ====\033[0m\n"
158-
$(CONTAINER_TOOL) build \
159-
--build-arg TARGETOS=linux \
160-
--build-arg TARGETARCH=$(TARGETARCH) \
161-
--build-arg COMMIT_SHA=${GIT_COMMIT_SHA} \
162-
--build-arg BUILD_REF=${BUILD_REF} \
163-
-t $(SIDECAR_IMG) -f Dockerfile.sidecar .
157+
image-push: epp-image-push sidecar-image-push ## Push Docker images to registry
164158

165-
.PHONY: sidecar-image-push
166-
sidecar-image-push: check-container-tool load-version-json ## Push Sidecar Docker image $(SIDECAR_IMG) to registry
167-
@printf "\033[33;1m==== Pushing Sidecar Docker image $(SIDECAR_IMG) ====\033[0m\n"
168-
$(CONTAINER_TOOL) push $(SIDECAR_IMG)
159+
.PHONY: %-image-push
160+
%-image-push: check-container-tool load-version-json ## Push Docker image to registry
161+
@printf "\033[33;1m==== Pushing Docker image $($*_IMAGE) ====\033[0m\n"
162+
$(CONTAINER_TOOL) push $($*_IMAGE)
169163

170164
##@ Install/Uninstall Targets
171165

0 commit comments

Comments
 (0)