zaitrarrio / engflow-free-tier

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EngFlow Free Tier

EngFlow Free Tier is a single-node, standalone version of the EngFlow platform that implements a remote cache, remote execution service, and build web UI for Remote Execution v2 protocol clients such as Bazel.

EngFlow Free Tier may be used a remote cache and UI for any Bazel build. It can also execute remote actions in a Linux Docker container.

Getting Started

EngFlow Free Tier is distributed as a Docker image for x86_64 Linux. The images are hosted by the GitHub container registry. Run the following to start up a EngFlow Free Tier instance that stores its data in /tmp/engflow_data:

$ docker run --init --rm --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock -v /tmp/engflow_data:/tmp/engflow_data -e DATA_DIR=/tmp/engflow_data -p 8080:8080 ghcr.io/engflow/free:2.8.0

Once EngFlow starts up, it will print configuration hints for Bazel. Try it out as a remote executor on your own Bazel project or on the EngFlow example repository:

$ git clone https://github.com/engflow/example engflow-example
$ cd engflow-example
$ bazel test --config engflow --bes_results_url=http://127.0.0.1:8080/invocation/ --bes_backend=grpc://127.0.0.1:8080 --remote_executor=grpc://127.0.0.1:8080 //java/...

Bazel should print a URL to view the EngFlow build UI for the build in a web browser.

EngFlow requires a Docker image to execute remote actions in, else the following error occurs:

ERROR: ... (Exit 34): INVALID_ARGUMENT: No matching action runner found (available: com.engflow.re.exec.docker.CachedDockerActionRunner@c4bf93d,com.engflow.re.exec.docker.DockerActionRunner@28c06c4), client-provided platform proto:

The EngFlow example repository configures the image using the rbe_autoconfig workspace rule from bazel-toolchains. For simple usecases, an image may be passed via Bazel's --remote_default_exec_properties flag. For instance, --remote_default_exec_properties=container-image=docker://docker.io/ubuntu:focal-20210827 to run remote actions in a recent Ubuntu container.

Getting Started w/ Docker Compose

EngFlow Free Tier may be started as a service through Docker Compose. A sample configuration of EngFlow deployed as a service is demonstrated in the docker-compose.yml file included in this repository. The example demonstrates the configuration of the EngFlow remote execution service to use containers for both local execution and remote runtime workers.

To start the EngFlow Free Tier and run build targets from the EngFlow example project, simply execute the following command from the top-level directory of this repository:

docker-compose up

EngFlow Free Tier can be deployed easily to various cloud providers through Docker Compose or directly as a container through Kubernetes, Amazon ECS, Azure Container Apps, Google Cloud Run and any other OCI-compatible container platform.

Configuration

EngFlow stores its caches and logs in the location pointed to by the $DATA_DIR environmental variable. Mount this location onto the host to preserve data across container invocations and view the service logs. If remote execution is used, $DATA_DIR must have the same path on the host and in the container. Additionally, the Docker Unix socket must be mounted into the container to allow EngFlow to execute actions in Docker containers.

The size of disk dedicated to the CAS will be automatically calculated; it may be manually specified with the --disk_size flag.

The --default_replicate_timeout flag should be set to twice the longest build time to ensure the garbage collector can work efficiently to reclaim disk space. It defaults to 24 hours.

Bug reports and support

Feel free to file an issue in the GitHub tracker.

Terms

By downloading this free version of EngFlow’s proprietary remote execution software (the “Software”), you agree to the following terms:

  • Subject to your compliance with these terms, EngFlow, Inc. (“EngFlow”) hereby grants to you a limited, non-exclusive, non-transferable, non-sublicensable, revocable license during the agreed upon license term to install and operate the Software, solely for your internal use and subject to the limitations on CPU cores and machines. Any rights not expressly granted herein are reserved by EngFlow.
  • You will not and will not permit any third party to copy, modify, reverse engineer, disassemble, decompile, decode or otherwise attempt to derive or gain improper access to any component of the Software or develop any product or service that may compete directly or indirectly with the Software.
  • The Software is provided on an “AS-IS” basis and EngFlow disclaims all warranties, express or implied, with respect to the Software. EngFlow will not provide customer support obligations. You acknowledge that the Software is a free version, and accordingly, EngFlow will not be liable to you or any third party for any amounts with respect to the Software.
  • At any time after your download and installation of the Software, without limiting EngFlow’s other rights or remedies, EngFlow has the right to audit your use of the Software to verify your compliance with these terms.

About


Languages

Language:Dockerfile 67.1%Language:Shell 32.9%