Skip to content

Commit b5d9cd5

Browse files
kvelakurmeta-codesync[bot]
authored andcommitted
Add Docker build for Explorer and JSON proxy, define github CI workflow
Summary: X-link: https://github.com/facebookincubator/rebalancer/pull/25 Makes the Rebalancer Explorer and its HTTP/JSON proxy buildable and runnable outside fbcode, via getdeps + CMake build and a set of container images. The CMake config * a `REBALANCER_BUILD_EXPLORER` gate for the Explorer library, server, and proxy, and * a `BUILD_TESTS` toggle so packaging builds skip compiling tests. Core deps move PRIVATE -> PUBLIC so consumers resolve folly/thrift via the shared-lib chain. Define 3 docker images: * explorer: Rebalancer Explorer Standalone Thrift service from D108943095 * proxy: the HTTP/JSON proxy from D109336444 * bundles: the example bundles from D109081834 are built and shared with explorer image via a volume The images share a common base build image. A github CI workflow builds the whole stack and smoke-tests seeder -> Explorer -> proxy end to end. Reviewed By: r-barnes Differential Revision: D109362399 fbshipit-source-id: c86feac6c1a9cf9bb9ee817f410ecec860082123
1 parent 136ce8a commit b5d9cd5

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
[manifest]
2+
name = rebalancer-explorer
3+
fbsource_path = fbcode/rebalancer/explorer/
4+
shipit_project = facebookincubator/rebalancer
5+
shipit_fbcode_builder = true
6+
use_shipit = true
7+
8+
[git]
9+
# To git clone on devserver, setup fwdproxy:
10+
# https://www.internalfb.com/wiki/Open_Source/Maintain_a_FB_OSS_Project/Devserver_GitHub_Access/
11+
repo_url = https://github.com/facebookincubator/rebalancer.git
12+
branch = main
13+
14+
[build]
15+
builder = cmake
16+
17+
[cmake.defines]
18+
CMAKE_POSITION_INDEPENDENT_CODE=ON
19+
REBALANCER_BUILD_EXPLORER=ON
20+
21+
# Build examples when tests are enabled (default unless --no-tests). Mirrors the
22+
# `rebalancer` manifest; lets the bundles image get examples without EXAMPLES=ON
23+
# in --extra-cmake-defines, which would change every dep's hash and break sharing
24+
# the prebuilt deps.
25+
[cmake.defines.test=on]
26+
EXAMPLES=ON
27+
28+
[dependencies]
29+
boost
30+
# fbthrift kept for RPC, benchmarks off. shared_libs makes folly/fbthrift/fmt
31+
# (and gflags/glog) single shared libs; as static archives they'd be linked into
32+
# several of the explorer's .so/exe and double-register gflags, aborting startup.
33+
fbthrift = !benchmark, shared_libs
34+
fmt = shared_libs
35+
folly = shared_libs
36+
gflags
37+
glog
38+
googletest
39+
highs-optimizer
40+
# Required by the HTTP/JSON proxy (rebalancer_explorer_proxy) for its HTTP server.
41+
proxygen
42+
re2
43+
xxhash
44+
45+
[dependencies.os=linux]
46+
clang19
47+
48+
[cmake.defines.os=linux]
49+
CMAKE_C_COMPILER=clang-19
50+
CMAKE_CXX_COMPILER=clang++-19
51+
52+
[shipit.strip]
53+
^.*/fb/.*$
54+
^fbcode/rebalancer/explorer/CLAUDE\.md$
55+
^fbcode/rebalancer/explorer/PACKAGE$
56+
57+
[shipit.pathmap]
58+
fbcode/algopt/rebalancer/oss_root = .
59+
fbcode/algopt/rebalancer = algopt/rebalancer
60+
fbcode/algopt/lp = algopt/lp
61+
fbcode/rebalancer/explorer = rebalancer/explorer
62+
63+
[dependencies.all(distro=centos_stream,distro_vers=9)]
64+
clang19
65+
66+
[cmake.defines.all(distro=centos_stream,distro_vers=9)]
67+
CMAKE_C_COMPILER=clang-19
68+
CMAKE_CXX_COMPILER=clang++-19

0 commit comments

Comments
 (0)