Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve build-ui Makefile target and fix dependencies #2573

Merged
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ Then install dependencies and run the tests:
git submodule update --init --recursive
make install-tools
make test
# if you wish to build platform binaries locally - the step below is needed.
make build-ui
```

### Running local build with the UI
Expand Down
31 changes: 23 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ md-to-godoc-gen:

.PHONY: clean
clean:
rm -rf cover.out .cover/ cover.html lint.log fmt.log
rm -rf cover.out .cover/ cover.html lint.log fmt.log \
jaeger-ui/packages/jaeger-ui/build

.PHONY: test
test: go-gen test-otel
Expand Down Expand Up @@ -222,29 +223,43 @@ docker-hotrod:
docker build -t $(DOCKER_NAMESPACE)/example-hotrod:${DOCKER_TAG} ./examples/hotrod --build-arg TARGETARCH=$(GOARCH)

.PHONY: run-all-in-one
run-all-in-one:
run-all-in-one: build-ui
go run -tags ui ./cmd/all-in-one --log-level debug

.PHONY: build-ui
build-ui:
build-ui: cmd/query/app/ui/actual/gen_assets.go cmd/query/app/ui/placeholder/gen_assets.go
# Do nothing. If you need to force a rebuild of UI assets, run `make clean`.
#
# The `jaeger-ui` submodule contains the source code for the UI assets (requires Node.js 6+).
albertteoh marked this conversation as resolved.
Show resolved Hide resolved
# The assets must be compiled first with `make build-ui`, which runs Node.js build and then
# packages the assets into a Go file that is `.gitignore`-ed.
#
# The packaged assets can be enabled by providing a build tag `ui`; for example:
# $ go run -tags ui ./cmd/all-in-one/main.go
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think CONTRIBUTING file is a better place for this documentation than a makefile, nobody would look here, especially when reading instructions in CONTRIBUTING


jaeger-ui/packages/jaeger-ui/build/index.html:
cd jaeger-ui && yarn install --frozen-lockfile && cd packages/jaeger-ui && yarn build

cmd/query/app/ui/actual/gen_assets.go: jaeger-ui/packages/jaeger-ui/build/index.html
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add to the top of build-crossdock-ui-placeholder target:

mkdir -p jaeger-ui/packages/jaeger-ui/build/
cp cmd/query/app/ui/placeholder/public/index.html jaeger-ui/packages/jaeger-ui/build/index.html

to avoid running yarn for crossdock CI steps

esc -pkg assets -o cmd/query/app/ui/actual/gen_assets.go -prefix jaeger-ui/packages/jaeger-ui/build jaeger-ui/packages/jaeger-ui/build

cmd/query/app/ui/placeholder/gen_assets.go: cmd/query/app/ui/placeholder/public/index.html
esc -pkg assets -o cmd/query/app/ui/placeholder/gen_assets.go -prefix cmd/query/app/ui/placeholder/public cmd/query/app/ui/placeholder/public

.PHONY: build-all-in-one-linux
build-all-in-one-linux: build-ui
build-all-in-one-linux:
GOOS=linux $(MAKE) build-all-in-one

.PHONY: build-all-in-one
build-all-in-one: elasticsearch-mappings
build-all-in-one: build-ui elasticsearch-mappings
$(GOBUILD) -tags ui -o ./cmd/all-in-one/all-in-one-$(GOOS)-$(GOARCH) $(BUILD_INFO) ./cmd/all-in-one/main.go

.PHONY: build-agent
build-agent:
$(GOBUILD) -o ./cmd/agent/agent-$(GOOS)-$(GOARCH) $(BUILD_INFO) ./cmd/agent/main.go

.PHONY: build-query
build-query:
build-query: build-ui
$(GOBUILD) -tags ui -o ./cmd/query/query-$(GOOS)-$(GOARCH) $(BUILD_INFO) ./cmd/query/main.go

.PHONY: build-collector
Expand All @@ -264,15 +279,15 @@ build-otel-ingester:
cd ${OTEL_COLLECTOR_DIR}/cmd/ingester && $(GOBUILD) -o ./opentelemetry-ingester-$(GOOS)-$(GOARCH) $(BUILD_INFO) main.go

.PHONY: build-otel-all-in-one
build-otel-all-in-one:
build-otel-all-in-one: build-ui
cd ${OTEL_COLLECTOR_DIR}/cmd/all-in-one && $(GOBUILD) -tags ui -o ./opentelemetry-all-in-one-$(GOOS)-$(GOARCH) $(BUILD_INFO) main.go

.PHONY: build-ingester
build-ingester:
$(GOBUILD) -o ./cmd/ingester/ingester-$(GOOS)-$(GOARCH) $(BUILD_INFO) ./cmd/ingester/main.go

.PHONY: docker
docker: build-ui build-binaries-linux docker-images-only
docker: build-binaries-linux docker-images-only

.PHONY: build-binaries-linux
build-binaries-linux:
Expand Down