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.update
to generate it before building and testing//python
. - In order to run
//swift
test you needclang
compiler. Make sure the binary is in yourPATH
.
-
Build each example with
bazel build //${DIRECTORY}/...
for
cpp
,csharp
,docker
,genrules
,go
,java
,kotlin
,perl
,python
,scala
andtypescript
or build them all withbazel build //...
-
Build
swift
example withbazel build //swift:test --config=clang
.
-
Test each example with
bazel test //${DIRECTORY}/...
for
java
,scala
andtypescript
. -
Test
swift
example withbazel test //swift:test --config=clang
-
Test
python
example 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_config
for
cpp
,csharp
,docker
,genrules
,go
,java
,kotlin
,perl
,python
,scala
ortypescript
or build them all withbazel build //... --config=remote --enable_platform_specific_config
. -
swift
example does not build remotely yet.
-
Test each example with
bazel test //${DIRECTORY}/... --config=remote
for
java
,python
,scala
andtypescript
.
A detailed example of EngFlow
APIs consumption is presented in java/com/engflow/notificationqueue.