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:
parent
18ae0cc394
commit
071f3895f7
3 changed files with 8 additions and 3 deletions
|
|
@ -56,9 +56,10 @@
|
|||
- _Requirements: 1.1, 1.2, 1.4, 4.1, 4.2_
|
||||
- _Boundary: go_build script_
|
||||
|
||||
- [ ] 4.2 apiserver and xcecli meson builds pass resolved values through
|
||||
- `src/frontend/apiserver/meson.build` and `src/frontend/xcecli/meson.build` read the project's `commit_id`/`build_time` meson options and pass them as `XCE_GIT_COMMIT`/`XCE_BUILD_TIME` env vars into their existing `custom_target()` calls
|
||||
- Observable: a meson-driven `/xce-build apiserver` (with 2.1's values set) produces an `xce_apiserver` binary whose linked-in vars are non-`unknown`
|
||||
- [x] 4.2 apiserver and xcecli meson builds pass resolved values through
|
||||
- Both meson.build files pass `XCE_GIT_COMMIT`/`XCE_BUILD_TIME` (from `get_option('commit_id')`/`get_option('build_time')`) into `go_build`'s env, UNQUOTED (go_build's `fix_input_envs()` only quote-strips `CURRENT_SOURCE_DIR`/`BUILD_ROOT`, not these two -- quoting them would embed literal `"` chars and corrupt the `-ldflags` argument)
|
||||
- Verified live (independently, by review): real commit id + build time reach `go build`'s actual invocation and are embedded in both binaries' Go build-info metadata (`go version -m`)
|
||||
- Observable partially deferred by design: no `main.GitCommit`/`main.BuildTime` symbols exist in either binary yet (`go tool nm` confirms) since apiserver/xcecli's `main` packages don't declare those vars until tasks 4.4/4.5 -- this task's own scope (`_Depends: 4.1_` only) is the env-var plumbing itself, not the full round trip; task 6.2 owns re-verifying that once 4.4 lands
|
||||
- _Requirements: 1.1, 1.2, 4.1, 4.2_
|
||||
- _Boundary: apiserver/meson.build, xcecli/meson.build_
|
||||
- _Depends: 4.1_
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue