fenv A FoundationDB CI framework that provides an environment for building and testing code that depends on FoundationDB. Works identically on your local machine and in GitHub Actions. Features Provides a base container with the FoundationDB client library The base container may be extended by providing a custom Dockerfile Automatically starts an FDB container for integration testing Configures the client container with the appropriate cluster file Supports both local development and GitHub Actions workflows Caches Docker images in CI to prevent rebuilds on every workflow run Provides a /cache directory that persists between container runs Installation Add fenv as a git submodule in your project: git submodule add https://github.com/janderland/fenv.git Quick Start Local development: ./fenv/fenv.sh --build --exec fdbcli --exec " status " GitHub Actions: - uses : actions/checkout@v4 with : submodules : true - uses : ./fenv - run : ./fenv/fenv.sh --exec fdbcli --exec "status" Extending the Client Container You can extend the base fenv image with your own build tools and dependencies by providing a custom Dockerfile. Create a Dockerfile that uses the fenv base image: ARG FENV_DOCKER_TAG FROM fenv:${FENV_DOCKER_TAG} # Install Go RUN curl -fsSL https://go.dev/dl/go1.23.4.linux-amd64.tar.gz | tar -C /usr/local -xz ENV PATH= "/usr/local/go/bin:${PATH}" ENV GOCACHE= "/cache/gocache" ENV GOMODCACHE= "/cache/gomod" # Install golangci-lint RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | \ sh -s -- -b /usr/local/bin v1.62.2 ENV GOLANGCI_LINT_CACHE= "/cache/golangci-lint" The FENV_DOCKER_TAG argument is automatically provided and ensures your extended image is based on the correct version of fenv. Cache Directory The /cache directory is backed by a Docker volume that persists between container runs. This makes it an ideal location for build and test caches (as shown in the example above with Go's module cache and golangci-lint cache). I...
First seen: 2026-01-10 18:55
Last seen: 2026-01-10 19:55