feat(build-time-versioning): thread commit_id/build_time into go_build env

apiserver/meson.build and xcecli/meson.build now pass
XCE_GIT_COMMIT/XCE_BUILD_TIME (from the project's commit_id/build_time
meson options) into go_build's environment, mirroring the existing
CURRENT_SOURCE_DIR/BUILD_ROOT env-passing mechanism. Deliberately
unquoted: go_build's fix_input_envs() only quote-strips
CURRENT_SOURCE_DIR/BUILD_ROOT, not these two -- quoting them would embed
literal quote characters and corrupt the -ldflags argument.

Live-verified: real values (matching git rev-parse --short HEAD plus
dirty suffix, and a real UTC timestamp) reach go build's actual
invocation and are embedded in both binaries' Go build-info metadata.

No main.GitCommit/main.BuildTime symbols exist in either binary yet
(confirmed via go tool nm) since apiserver/xcecli's main packages don't
declare those vars until tasks 4.4/4.5 -- expected, this task's scope is
the env-var plumbing only.

Task 4.2/13 of build-time-versioning.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-08-20 12:50:36 +00:00
parent 18ae0cc394
commit 071f3895f7
No known key found for this signature in database
GPG key ID: 5BCDAAE0123E9FE2
3 changed files with 8 additions and 3 deletions

View file

@ -56,6 +56,8 @@ custom_target('apiserver',
command: [env_program,
'CURRENT_SOURCE_DIR="@CURRENT_SOURCE_DIR@"',
'BUILD_ROOT="@BUILD_ROOT@"',
'XCE_GIT_COMMIT=' + get_option('commit_id'),
'XCE_BUILD_TIME=' + get_option('build_time'),
go_build_program,
'@INPUT@', '@OUTPUT@'],
env: go_env,

View file

@ -12,6 +12,8 @@ custom_target('xcecli',
command: [env_program,
'CURRENT_SOURCE_DIR="@CURRENT_SOURCE_DIR@"',
'BUILD_ROOT="@BUILD_ROOT@"',
'XCE_GIT_COMMIT=' + get_option('commit_id'),
'XCE_BUILD_TIME=' + get_option('build_time'),
go_build_program,
'@INPUT@', '@OUTPUT@'],
env: go_env,