e0c1bc752d
# Description This PR allows to codegen without worrying about your environment and dependencies for consistent outcomes in what code is generated from openapi and envd protobuf spec. Will generate files for `js-sdk` and `python-sdk` - [x] create Docker image with all the pinned deps needed to codegen - [x] create codegen script using this container with mapped volumes - [x] adapt Makefiles to this new approach - [x] adapt where we install the connect-python protobuf binary for this to work # Test ```sh make codegen # this command is similar to `make generate` but w/o the hassle Generating SDK code from openapi and envd spec cd packages/js-sdk && pnpm generate > e2b@1.2.1 generate /workspace/packages/js-sdk > python ./../../spec/remove_extra_tags.py sandboxes templates && openapi-typescript ../../spec/openapi_generated.yml -x api_key --arr ay-length --alphabetize --output src/api/schema.gen.ts ✨ openapi-typescript 7.6.1 🚀 ../../spec/openapi_generated.yml → src/api/schema.gen.ts [44.2ms] cd packages/js-sdk && pnpm generate-envd-api > e2b@1.2.1 generate-envd-api /workspace/packages/js-sdk > openapi-typescript ../../spec/envd/envd.yaml -x api_key --array-length --alphabetize --output src/envd/schema.gen.ts ✨ openapi-typescript 7.6.1 🚀 ../../spec/envd/envd.yaml → src/envd/schema.gen.ts [22.7ms] [...] cd packages/python-sdk && make generate-api All done! ✨ 🍰 ✨ ``` --------- Co-authored-by: Jiri Sveceny <jiri.sveceny@icloud.com>
29 lines
728 B
Makefile
29 lines
728 B
Makefile
update-api-spec:
|
|
@echo "Updating API spec"
|
|
@./scripts/update-api-spec.sh
|
|
@echo "Done"
|
|
|
|
.PHONY: codegen
|
|
codegen:
|
|
@echo "Generating SDK code from openapi and envd spec"
|
|
@./scripts/codegen.sh
|
|
|
|
generate: generate-js generate-python
|
|
|
|
generate-js:
|
|
cd packages/js-sdk && pnpm generate
|
|
cd packages/js-sdk && pnpm generate-envd-api
|
|
cd spec/envd && buf generate --template buf-js.gen.yaml
|
|
|
|
generate-python:
|
|
if [ ! -f "/go/bin/protoc-gen-connect-python" ]; then \
|
|
$(MAKE) -C packages/connect-python build; \
|
|
fi
|
|
cd packages/python-sdk && make generate-api
|
|
cd spec/envd && buf generate --template buf-python.gen.yaml
|
|
cd packages/python-sdk && ./scripts/fix-python-pb.sh && black .
|
|
|
|
.PHONY: init-styles
|
|
init-styles:
|
|
vale sync
|