Skip to content

build(application): preserve Rust release debug info#557

Open
WilliamBerryiii wants to merge 3 commits into
mainfrom
issue-168-build-preserve-debug
Open

build(application): preserve Rust release debug info#557
WilliamBerryiii wants to merge 3 commits into
mainfrom
issue-168-build-preserve-debug

Conversation

@WilliamBerryiii
Copy link
Copy Markdown
Member

Pull Request

IMPORTANT: Before submitting, please remove all sensitive data, secrets, tokens, or confidential information. Ensure you've redacted any NDA-covered information, IP addresses, resource names, or security-related details that shouldn't be publicly disclosed.

Description

Preserved Rust release debug metadata for application container builds by passing Cargo release profile settings through CI/CD build configuration and into the Rust service Dockerfiles.

This change kept release builds from stripping debug information by setting:

  • CARGO_PROFILE_RELEASE_DEBUG=line-tables-only
  • CARGO_PROFILE_RELEASE_STRIP=none

Related Issue

Relates to #168

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Blueprint modification or addition
  • Component modification or addition
  • Documentation update
  • CI/CD pipeline change
  • Other (please describe):

Implementation Details

Updated the application matrix build workflow to accept Docker build arguments and pass them through application image builds.

Updated PR validation to provide Cargo release profile build arguments for Rust application images.

Updated Azure Pipelines application build configuration to pass the same Docker build arguments used by GitHub Actions.

Updated Rust application Dockerfiles to declare the Cargo profile build arguments and export them as environment variables before the release build runs.

The Dockerfile updates covered the Rust telemetry services, Rust HTTP connector services, media capture service, MQTT OTEL trace exporter, and AI edge inference images.

Testing Performed

  • Terraform plan/apply
  • Blueprint deployment test
  • Unit tests
  • Integration tests
  • Bug fix includes regression test (see Test Policy)
  • Manual validation
  • Other: Diff reviewed for CI/CD build argument propagation and Dockerfile Cargo profile configuration.

Validation Steps

  1. Review the PR validation workflow and confirm the application build configuration passes dockerBuildArgs with CARGO_PROFILE_RELEASE_DEBUG=line-tables-only and CARGO_PROFILE_RELEASE_STRIP=none.
  2. Review the Azure Pipelines application build configuration and confirm it passes the same Docker build arguments.
  3. Review each modified Rust application Dockerfile and confirm the Cargo profile build arguments are declared with ARG and exported with ENV.
  4. Run the application image build workflow or pipeline and confirm the Rust release builds receive the Cargo profile environment variables.

Checklist

  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed
  • I have run terraform fmt on all Terraform code
  • I have run terraform validate on all Terraform code
  • I have run az bicep format on all Bicep code
  • I have run az bicep build to validate all Bicep code
  • I have checked for any sensitive data/tokens that should not be committed
  • Lint checks pass (run applicable linters for changed file types)

Security Review

  • No credentials, secrets, or tokens are hardcoded or logged
  • RBAC and identity changes follow least-privilege principles
  • No new network exposure or public endpoints introduced without justification
  • Dependency additions or updates have been reviewed for known vulnerabilities
  • Container image changes use pinned digests or SHA references

Additional Notes

This PR changed build, pipeline, and container configuration only. It did not change application runtime source code, Terraform, Bicep, RBAC, dependencies, or network exposure.

Screenshots (if applicable)

Not applicable.

@WilliamBerryiii WilliamBerryiii requested a review from a team as a code owner May 21, 2026 20:02
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented May 21, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 32.41%. Comparing base (41b933a) to head (e48534d).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #557   +/-   ##
=======================================
  Coverage   32.41%   32.41%           
=======================================
  Files          40       40           
  Lines        5902     5902           
=======================================
  Hits         1913     1913           
  Misses       3989     3989           
Flag Coverage Δ
rust 32.41% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Contributor

@rezatnoMsirhC rezatnoMsirhC left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution. The approach is solid and the Dockerfile coverage across all Rust release-build services looks complete.

Comment thread .github/workflows/application-matrix-builds.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants