lightstep-tracer
Version:
> ❗ **This instrumentation is no longer recommended**. Please review [documentation on setting up and configuring the OpenTelemetry Node.js Launcher](https://github.com/lightstep/otel-launcher-node) or [OpenTelemetry JS (Browser)](https://github.com/open-
143 lines (121 loc) • 4.49 kB
Plain Text
# http://stackoverflow.com/questions/3774568/makefile-issue-smart-way-to-scan-directory-tree-for-c-files
recursive_wildcard = $(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call recursive_wildcard,$d/,$2))
#
# build
#
CMD_BABEL=node node_modules/.bin/babel
CMD_WEBPACK=node node_modules/.bin/webpack
SOURCES_JS=$(call recursive_wildcard,src/,*.js)
COMPILED_JS=$(SOURCES_JS:src/%.js=lib/%.js)
BUNDLE_JS=dist/lightstep-tracer.js dist/lightstep-tracer.min.js
build: node_modules build-node build-browser
node_modules:
npm install
build-browser: $(BUNDLE_JS)
$(BUNDLE_JS): $(SOURCES_JS) webpack.config.js package.json
NODE_ENV=development $(CMD_WEBPACK)
NODE_ENV=production $(CMD_WEBPACK)
build-node: $(COMPILED_JS)
lib/%.js: src/%.js
@mkdir -p $(@D)
$(CMD_BABEL) --presets=@babel/preset-env --plugins add-module-exports,@babel/proposal-object-rest-spread,@babel/transform-spread,@babel/syntax-object-rest-spread $< -o $@ --source-maps
clean:
rm -rf dist
rm -rf lib
rm -rf coverage
#
# release
#
# NOTE: `npm version` automatically creates a git commit and git tag for the
# incremented version
release:
@if [ $(shell git symbolic-ref --short -q HEAD) = "no_protobuf" ]; then exit 0; else \
echo "Current git branch does not appear to be 'no_protobuf'. Refusing to publish."; exit 1; \
fi
npm run release:prepare $(RELEASE_TYPE)
@echo
@echo "Version and tag created. The publish will be done automatically from circleCI."
@echo
# NOTE: the benchmark package is *not* part of package.json as it relies on a
# native module -- that does not compile on all systems. Until/unless that is
# resolved, it gets "manually" installed here when the benchmarks are run
#
# NOTE: the --max-old-space-size=4000 works around what appears to be a defect
# in Node 6.x
benchmark: build node_modules/sc-benchmark
node --max-old-space-size=4000 benchmarks/benchmark.js
node_modules/sc-benchmark:
npm install sc-benchmark@0.1.11
#
# test
#
test: build test-node test-browser lint
# The "_mocha" in the below is important:
# https://github.com/gotwarlost/istanbul/issues/262
coverage: build
rm -f test/results/*.json
node node_modules/nyc/bin/nyc --reporter=lcov --reporter=html node_modules/mocha/bin/_mocha -- -c test/unittest_node.js
@echo
@echo "Coverage is currently run against the compiled code. Numbers are not fully accurate."
@echo "Open coverage/lcov-report/index.html for details."
test-node:
npm test
test-browser:
cp dist/lightstep-tracer.js test/dist
cd test && node ../node_modules/webpack/bin/webpack.js ./unittest_browser.js -o dist/unittest_browser.bundle.js
cd test && open unittest.html
# Note: versions < 6.2 are *not* supported. The 'beforeExit' event has
# different behavior that does not work with the current implementation.
test-all: build
scripts/docker_test.sh latest
scripts/docker_test.sh 16
scripts/docker_test.sh 14
scripts/docker_test.sh 12
#
# lint
#
lint:
node node_modules/eslint/bin/eslint.js --color --fix src
#
# watch
#
# Dev convenience for automatically rebuilding on file changes
watch: build
node node_modules/watch-trigger/index.js watch-trigger.config.json
example-browser: build
cd examples/browser && bash run.sh
# LightStep internal target
thrift: thrift-compile thrift-postprocess
thrift-compile:
docker run -v "$(LIGHTSTEP_REPO_ROOT)/go/src/github.com/lightstep/common-go/:/data" -v "$(PWD):/out" --rm thrift:0.9.2 \
thrift -r -gen js:node -out /out/src/imp/platform/node/thrift_api /data/crouton.thrift
docker run -v "$(LIGHTSTEP_REPO_ROOT)/go/src/github.com/lightstep/common-go/:/data" -v "$(PWD):/out" --rm thrift:0.9.2 \
thrift -r -gen js -out /out/src/imp/platform/browser/thrift_api /data/crouton.thrift
rm src/imp/platform/browser/thrift_api/ReportingService.js
rm src/imp/platform/node/thrift_api/ReportingService.js
thrift-postprocess:
node ./scripts/build_browser_thrift_lib.js
node ./scripts/build_node_thrift_lib.js
# LightStep internal target
proto:
protoc -I"$(PWD)/../googleapis/:$(PWD)/../lightstep-tracer-common/" \
--js_out=import_style=commonjs,binary:src/imp/generated_proto \
collector.proto google/api/annotations.proto google/api/http.proto