This repository contains examples in various languages that demonstrate how to build and test software with the EngFlow Remote Execution service.
- In order to build and test
//python, Bazel needs to install the dependencies listed inpython/requirements.txt. To make this repository work across platforms, we do not check in a lock file; executebazel run //python:requirements.updateto generate it before building and testing//python. - In order to run
//swifttest you needclangcompiler. Make sure the binary is in yourPATH.
-
Build each example with
bazel build //${DIRECTORY}/...for
cpp,csharp,docker,genrules,go,java,kotlin,perl,python,scalaandtypescriptor build them all withbazel build //... -
Build
swiftexample withbazel build //swift:test --config=clang.
-
Test each example with
bazel test //${DIRECTORY}/...for
java,scalaandtypescript. -
Test
swiftexample withbazel test //swift:test --config=clang -
Test
pythonexample withbazel test //python/...
Make sure to include --remote_executor and --bes_backend, in the remote configuration of your .bazelrc.user file , as well as access credentials if needed. For instance,
build:remote --remote_executor=grpcs://${CLUSTER_ENDPOINT}/
build:remote --bes_backend=grpcs://${CLUSTER_ENDPOINT}/
build:remote --bes_results_url=https://${CLUSTER_ENDPOINT}/invocation/
build:remote --nogoogle_default_credentials
build:remote --bes_lifecycle_events
build:remote --tls_client_certificate=/path/to/credentials/cert.crt
build:remote --tls_client_key=/path/to/credentials/cert.key-
Build each example with
bazel build //${DIRECTORY}/... --config=remote --enable_platform_specific_configfor
cpp,csharp,docker,genrules,go,java,kotlin,perl,python,scalaortypescriptor build them all withbazel build //... --config=remote --enable_platform_specific_config. -
swiftexample does not build remotely yet.
-
Test each example with
bazel test //${DIRECTORY}/... --config=remotefor
java,python,scalaandtypescript.
A detailed example of EngFlow APIs consumption is presented in java/com/engflow/notificationqueue.