Skip to content

Commit

Permalink
modify makefiles
Browse files Browse the repository at this point in the history
Signed-off-by: a3hadi <[email protected]>
  • Loading branch information
ayildirim21 committed Mar 11, 2024
1 parent a8ca9ab commit e7d0854
Show file tree
Hide file tree
Showing 18 changed files with 140 additions and 18 deletions.
4 changes: 4 additions & 0 deletions development.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ The SDK uses local references in the `go.mod` file, i.e. the `github.com/numapro
`numaflow-go` directory. Thus, you can automatically test your SDK changes without the need to push to your forked repository or modify the `go.mod` file.
Simply make your changes, build and push the desired example image (with an appropriate tag, such as `test`), and you are ready to use it in any pipeline.

Each example directory has a Makefile which can be used to build, tag, and push images. In most cases, the `image` target should be used.
However, `buildx`, which is used to support multiple architectures, does not make a built image available locally. In the case that a developer
wants this functionality, they can use the `test-image` target.

### Deploying

1. Create a PR for your changes. Once merged, it will trigger a workflow to build and push the images for all the examples,
Expand Down
10 changes: 9 additions & 1 deletion pkg/mapper/examples/even_odd/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/even-odd-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/map-even-odd:stable" --target even-odd .
docker buildx build -t "quay.io/numaio/numaflow-go/map-even-odd:${TAG}" --platform linux/amd64,linux/arm64 --target even-odd . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/map-even-odd:${TAG}" --target even-odd .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/map-even-odd:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/mapper/examples/flatmap/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/flatmap-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/map-flatmap:stable" --target flatmap .
docker buildx build -t "quay.io/numaio/numaflow-go/map-flatmap:${TAG}" --platform linux/amd64,linux/arm64 --target flatmap . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/map-flatmap:${TAG}" --target flatmap .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/map-flatmap:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/mapper/examples/forward_message/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/forward-message-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/map-forward-message:stable" --target forward-message .
docker buildx build -t "quay.io/numaio/numaflow-go/map-forward-message:${TAG}" --platform linux/amd64,linux/arm64 --target forward-message . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/map-forward-message:${TAG}" --target forward-message .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/map-forward-message:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/mapper/examples/retry/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/retry main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/map-retry:stable" --target retry .
docker buildx build -t "quay.io/numaio/numaflow-go/map-retry:${TAG}" --platform linux/amd64,linux/arm64 --target retry . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/map-retry:${TAG}" --target map-retry .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/map-retry:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/mapper/examples/tickgen/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/tickgen-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/map-tickgen:stable" --target tickgen .
docker buildx build -t "quay.io/numaio/numaflow-go/map-tickgen:${TAG}" --platform linux/amd64,linux/arm64 --target tickgen . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/map-tickgen:${TAG}" --target tickgen .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/map-tickgen:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/mapstreamer/examples/flatmap_stream/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/flatmap-stream-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/map-flatmap-stream:stable" --target flatmap_stream .
docker buildx build -t "quay.io/numaio/numaflow-go/map-flatmap-stream:${TAG}" --platform linux/amd64,linux/arm64 --target flatmap_stream . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/map-flatmap-stream:${TAG}" --target flatmap_stream .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/map-flatmap-stream:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/reducer/examples/counter/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/counter-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/reduce-counter:stable" --target counter .
docker buildx build -t "quay.io/numaio/numaflow-go/reduce-counter:${TAG}" --platform linux/amd64,linux/arm64 --target counter . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/reduce-counter:${TAG}" --target counter .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/reduce-counter:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/reducer/examples/sum/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/sum-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/reduce-sum:stable" --target sum .
docker buildx build -t "quay.io/numaio/numaflow-go/reduce-sum:${TAG}" --platform linux/amd64,linux/arm64 --target sum . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/reduce-sum:${TAG}" --target sum .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/reduce-sum:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/reducestreamer/examples/counter/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/counter-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/reduce-stream-counter:stable" --target counter .
docker buildx build -t "quay.io/numaio/numaflow-go/reduce-stream-counter:${TAG}" --platform linux/amd64,linux/arm64 --target counter . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/reduce-stream-counter:${TAG}" --target counter .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/reduce-stream-counter:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/reducestreamer/examples/sum/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/sum-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/reduce-stream-sum:stable" --target sum .
docker buildx build -t "quay.io/numaio/numaflow-go/reduce-stream-sum:${TAG}" --platform linux/amd64,linux/arm64 --target sum . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/reduce-stream-sum:${TAG}" --target sum .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/reduce-stream-sum:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/sessionreducer/examples/counter/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/counter-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/session-counter:stable" --target counter .
docker buildx build -t "quay.io/numaio/numaflow-go/session-counter:${TAG}" --platform linux/amd64,linux/arm64 --target counter . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/session-counter:${TAG}" --target counter .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/session-counter:${TAG}"; fi

clean:
-rm -rf ./dist
3 changes: 1 addition & 2 deletions pkg/sideinput/examples/simple-sideinput/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@ build:
image: build
docker buildx build -t "quay.io/numaio/numaflow-go/sideinput-example:${TAG}" --platform linux/amd64,linux/arm64 --target sideinput . --push

# If testing locally, there isn't a need for multi-arch images
.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/sideinput-example:${TAG}" --target udf-sideinput .
docker build -t "quay.io/numaio/numaflow-go/sideinput-example:${TAG}" --target sideinput .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/sideinput-example:${TAG}"; fi

clean:
Expand Down
1 change: 0 additions & 1 deletion pkg/sideinput/examples/simple-sideinput/udf/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ build:
image: build
docker buildx build -t "quay.io/numaio/numaflow-go/udf-sideinput-example:${TAG}" --platform linux/amd64,linux/arm64 --target udf-sideinput . --push

# If testing locally, there isn't a need for multi-arch images
.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/udf-sideinput-example:${TAG}" --target udf-sideinput .
Expand Down
10 changes: 9 additions & 1 deletion pkg/sinker/examples/log/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/log-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/sink-log:stable" --target log .
docker buildx build -t "quay.io/numaio/numaflow-go/sink-log:${TAG}" --platform linux/amd64,linux/arm64 --target log . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/sink-log:${TAG}" --target log .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/sink-log:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/sourcer/examples/simple_source/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/simple-source-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/source-simple-source:stable" --target simple-source .
docker buildx build -t "quay.io/numaio/numaflow-go/source-simple-source:${TAG}" --platform linux/amd64,linux/arm64 --target simple-source . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/source-simple-source:${TAG}" --target simple-source .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/source-simple-source:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/sourcetransformer/examples/assign_event_time/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/assign-event-time-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/mapt-assign-event-time:stable" --target assign-event-time .
docker buildx build -t "quay.io/numaio/numaflow-go/mapt-assign-event-time:${TAG}" --platform linux/amd64,linux/arm64 --target assign-event-time . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/mapt-assign-event-time:${TAG}" --target assign-event-time .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/mapt-assign-event-time:${TAG}"; fi

clean:
-rm -rf ./dist
10 changes: 9 additions & 1 deletion pkg/sourcetransformer/examples/event_time_filter/Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
TAG ?= stable
PUSH ?= false

.PHONY: build
build:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o ./dist/event-time-filter-example main.go

.PHONY: image
image: build
docker build -t "quay.io/numaio/numaflow-go/mapt-event-time-filter:stable" --target event-time-filter .
docker buildx build -t "quay.io/numaio/numaflow-go/mapt-event-time-filter:${TAG}" --platform linux/amd64,linux/arm64 --target event-time-filter . --push

.PHONY: test_image
test_image: build
docker build -t "quay.io/numaio/numaflow-go/mapt-event-time-filter:${TAG}" --target event-time-filter .
@if [ "$(PUSH)" = "true" ]; then docker push "quay.io/numaio/numaflow-go/mapt-event-time-filter:${TAG}"; fi

clean:
-rm -rf ./dist
Expand Down

0 comments on commit e7d0854

Please sign in to comment.