Skip to content

Commit b865ce8

Browse files
bltclaude
andcommitted
Add Rust compression build to remaining agent build tasks
Integrate the Rust compression library build into all remaining invoke tasks that compile Go code which may use the compression package: - omnibus.py: Main packaging build and build_repackaged_agent - otel_agent.py: OTel agent build - sbomgen.py: SBOM generator build - loader.py: Loader build - full_host_profiler.py: Full host profiler build - installer.py: Installer build - privateactionrunner.py: Private action runner build - cws_instrumentation.py: CWS instrumentation build - cluster_agent_cloudfoundry.py: Cluster agent for Cloud Foundry build Each task now calls rust_compression_build(ctx, release=True) before the Go build, with an exclude_rust_compression parameter to optionally skip when not needed. Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent f82bca8 commit b865ce8

File tree

9 files changed

+71
-9
lines changed

9 files changed

+71
-9
lines changed

tasks/cluster_agent_cloudfoundry.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,34 @@
88

99
from tasks.build_tags import compute_build_tags_for_flavor
1010
from tasks.cluster_agent_helpers import build_common, clean_common, refresh_assets_common, version_common
11+
from tasks.libs.common.utils import gitlab_section
12+
from tasks.rust_compression import build as rust_compression_build
1113

1214
# constants
1315
BIN_PATH = os.path.join(".", "bin", "datadog-cluster-agent-cloudfoundry")
1416

1517

1618
@task
17-
def build(ctx, rebuild=False, build_include=None, build_exclude=None, race=False, development=True, skip_assets=False):
19+
def build(
20+
ctx,
21+
rebuild=False,
22+
build_include=None,
23+
build_exclude=None,
24+
race=False,
25+
development=True,
26+
skip_assets=False,
27+
exclude_rust_compression=False,
28+
):
1829
"""
1930
Build Cluster Agent for Cloud Foundry
2031
2132
Example invokation:
2233
dda inv cluster-agent-cloudfoundry.build
2334
"""
35+
if not exclude_rust_compression:
36+
with gitlab_section("Build Rust compression library", collapsed=True):
37+
rust_compression_build(ctx, release=True)
38+
2439
build_common(
2540
ctx,
2641
BIN_PATH,

tasks/cws_instrumentation.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
get_build_flags,
1818
get_go_version,
1919
get_version,
20+
gitlab_section,
2021
)
22+
from tasks.rust_compression import build as rust_compression_build
2123

2224
BIN_DIR = os.path.join(".", "bin")
2325
BIN_PATH = os.path.join(BIN_DIR, "cws-instrumentation", bin_name("cws-instrumentation"))
@@ -37,10 +39,15 @@ def build(
3739
no_strip_binary=False,
3840
arch_suffix=False,
3941
injector_only=False,
42+
exclude_rust_compression=False,
4043
):
4144
"""
4245
Build cws-instrumentation
4346
"""
47+
if not exclude_rust_compression:
48+
with gitlab_section("Build Rust compression library", collapsed=True):
49+
rust_compression_build(ctx, release=True)
50+
4451
if build_tags is None:
4552
build_tags = []
4653
ldflags, gcflags, env = get_build_flags(ctx, static=static)

tasks/full_host_profiler.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,22 @@
77

88
from tasks.build_tags import get_default_build_tags
99
from tasks.libs.common.go import go_build
10-
from tasks.libs.common.utils import REPO_PATH, bin_name, get_version_ldflags
10+
from tasks.libs.common.utils import REPO_PATH, bin_name, get_version_ldflags, gitlab_section
11+
from tasks.rust_compression import build as rust_compression_build
1112

1213
BIN_NAME = "full-host-profiler"
1314
BIN_DIR = os.path.join(".", "bin", "full-host-profiler")
1415
BIN_PATH = os.path.join(BIN_DIR, bin_name("full-host-profiler"))
1516

1617

1718
@task
18-
def build(ctx):
19+
def build(ctx, exclude_rust_compression=False):
1920
"""
2021
Build the full host profiler
2122
"""
23+
if not exclude_rust_compression:
24+
with gitlab_section("Build Rust compression library", collapsed=True):
25+
rust_compression_build(ctx, release=True)
2226

2327
if os.path.exists(BIN_PATH):
2428
os.remove(BIN_PATH)

tasks/installer.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
)
1515
from tasks.flavor import AgentFlavor
1616
from tasks.libs.common.go import go_build
17-
from tasks.libs.common.utils import REPO_PATH, bin_name, get_build_flags
17+
from tasks.libs.common.utils import REPO_PATH, bin_name, get_build_flags, gitlab_section
18+
from tasks.rust_compression import build as rust_compression_build
1819
from tasks.windows_resources import build_messagetable, build_rc, versioninfo_vars
1920

2021
DIR_BIN = path.join(".", "bin", "installer")
@@ -36,10 +37,14 @@ def build(
3637
no_strip_binary=True,
3738
no_cgo=False,
3839
fips_mode=False,
40+
exclude_rust_compression=False,
3941
):
4042
"""
4143
Build the installer.
4244
"""
45+
if not exclude_rust_compression:
46+
with gitlab_section("Build Rust compression library", collapsed=True):
47+
rust_compression_build(ctx, release=True)
4348

4449
ldflags, gcflags, env = get_build_flags(ctx, install_path=install_path, run_path=run_path)
4550

tasks/loader.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
from tasks.flavor import AgentFlavor
88
from tasks.libs.common.constants import REPO_PATH
99
from tasks.libs.common.go import go_build
10-
from tasks.libs.common.utils import bin_name, get_build_flags
10+
from tasks.libs.common.utils import bin_name, get_build_flags, gitlab_section
11+
from tasks.rust_compression import build as rust_compression_build
1112

1213
BIN_DIR = os.path.join(".", "bin", "trace-loader")
1314
BIN_PATH = os.path.join(BIN_DIR, bin_name("trace-loader"))
@@ -19,7 +20,12 @@ def build(
1920
ctx,
2021
install_path=None,
2122
go_mod="readonly",
23+
exclude_rust_compression=False,
2224
):
25+
if not exclude_rust_compression:
26+
with gitlab_section("Build Rust compression library", collapsed=True):
27+
rust_compression_build(ctx, release=True)
28+
2329
ldflags, gcflags, env = get_build_flags(ctx, install_path=install_path)
2430
build_tags = get_default_build_tags(build="loader", flavor=AgentFlavor.base)
2531
go_build(

tasks/omnibus.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from tasks.libs.common.utils import gitlab_section, timed
3131
from tasks.libs.dependencies import get_effective_dependencies_env
3232
from tasks.libs.releasing.version import get_version
33+
from tasks.rust_compression import build as rust_compression_build
3334

3435

3536
def omnibus_run_task(ctx, task, target_project, base_dir, env, log_level="info", host_distribution=None):
@@ -208,10 +209,14 @@ def build(
208209
install_directory=None,
209210
config_directory=None,
210211
target_project=None,
212+
exclude_rust_compression=False,
211213
):
212214
"""
213215
Build the Agent packages with Omnibus Installer.
214216
"""
217+
if not exclude_rust_compression:
218+
with gitlab_section("Build Rust compression library", collapsed=True):
219+
rust_compression_build(ctx, release=True)
215220

216221
flavor = AgentFlavor[flavor]
217222
fips_mode = flavor.is_fips()
@@ -416,12 +421,16 @@ def manifest(
416421

417422

418423
@task()
419-
def build_repackaged_agent(ctx, log_level="info"):
424+
def build_repackaged_agent(ctx, log_level="info", exclude_rust_compression=False):
420425
"""
421426
Create an Agent package by using an existing Agent package as a base and rebuilding the Agent binaries with the local checkout.
422427
423428
Currently only expected to work for debian packages, and requires the `dpkg` command to be available.
424429
"""
430+
if not exclude_rust_compression:
431+
with gitlab_section("Build Rust compression library", collapsed=True):
432+
rust_compression_build(ctx, release=True)
433+
425434
# Make sure we let the user know that we're going to overwrite the existing Agent installation if present
426435
agent_path = "/opt/datadog-agent"
427436
if os.path.exists(agent_path):

tasks/otel_agent.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
from tasks.build_tags import get_default_build_tags
1010
from tasks.flavor import AgentFlavor
1111
from tasks.libs.common.go import go_build
12-
from tasks.libs.common.utils import REPO_PATH, bin_name, get_version_ldflags
12+
from tasks.libs.common.utils import REPO_PATH, bin_name, get_version_ldflags, gitlab_section
13+
from tasks.rust_compression import build as rust_compression_build
1314
from tasks.windows_resources import build_messagetable, build_rc, versioninfo_vars
1415

1516
BIN_NAME = "otel-agent"
@@ -37,10 +38,13 @@ def byoc_release(ctx, version: str):
3738

3839

3940
@task
40-
def build(ctx, byoc=False, flavor=AgentFlavor.base.name):
41+
def build(ctx, byoc=False, flavor=AgentFlavor.base.name, exclude_rust_compression=False):
4142
"""
4243
Build the otel agent
4344
"""
45+
if not exclude_rust_compression:
46+
with gitlab_section("Build Rust compression library", collapsed=True):
47+
rust_compression_build(ctx, release=True)
4448

4549
if os.path.exists(BIN_PATH):
4650
os.remove(BIN_PATH)

tasks/privateactionrunner.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
from tasks.flavor import AgentFlavor
88
from tasks.libs.common.constants import REPO_PATH
99
from tasks.libs.common.go import go_build
10-
from tasks.libs.common.utils import bin_name, get_build_flags
10+
from tasks.libs.common.utils import bin_name, get_build_flags, gitlab_section
11+
from tasks.rust_compression import build as rust_compression_build
1112

1213
BIN_DIR = os.path.join(".", "bin", "privateactionrunner")
1314
BIN_PATH = os.path.join(BIN_DIR, bin_name("privateactionrunner"))
@@ -21,7 +22,12 @@ def build(
2122
flavor=AgentFlavor.base.name,
2223
rebuild=False,
2324
go_mod="readonly",
25+
exclude_rust_compression=False,
2426
):
27+
if not exclude_rust_compression:
28+
with gitlab_section("Build Rust compression library", collapsed=True):
29+
rust_compression_build(ctx, release=True)
30+
2531
ldflags, gcflags, env = get_build_flags(ctx, install_path=install_path)
2632
build_tags = get_default_build_tags(build="privateactionrunner", flavor=AgentFlavor[flavor])
2733
go_build(

tasks/sbomgen.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
from tasks.libs.common.utils import (
88
REPO_PATH,
99
get_build_flags,
10+
gitlab_section,
1011
)
12+
from tasks.rust_compression import build as rust_compression_build
1113

1214
BIN_DIR = os.path.join(".", "bin")
1315
BIN_PATH = os.path.join(BIN_DIR, "sbomgen", "sbomgen")
@@ -19,10 +21,14 @@ def build(
1921
dumpdep=False,
2022
install_path=None,
2123
static=False,
24+
exclude_rust_compression=False,
2225
):
2326
"""
2427
Build the sbomgen binary
2528
"""
29+
if not exclude_rust_compression:
30+
with gitlab_section("Build Rust compression library", collapsed=True):
31+
rust_compression_build(ctx, release=True)
2632

2733
ldflags, gcflags, env = get_build_flags(ctx, static=static, install_path=install_path)
2834
ldflags += "-s -w"

0 commit comments

Comments
 (0)