fix(release): wall-entry commits under an explicit git identity
git commit in the cache clone relied on ambient user.name/user.email, which the box has neither globally nor per-repo — every push-side test failed there with "unable to auto-detect email address" while passing on a laptop with a global identity configured. Resolve the identity from the repository the rail is actually running in (process.cwd(), the developer's own checkout release.sh invokes this from) and pass it explicitly via -c user.name/-c user.email on the commit; refuse by name if neither is set. Give the test fixtures a repo-local identity the same way seedRemote already does for the seed clone, so the suite is deterministic on any host.
This commit is contained in:
parent
1882532cb7
commit
aac853d3e8
2 changed files with 44 additions and 1 deletions
|
|
@ -104,6 +104,14 @@ let cacheDir: string
|
|||
|
||||
beforeEach(() => {
|
||||
dir = mkdtempSync(join(tmpdir(), 'wall-entry-test-'))
|
||||
// wall-entry.mjs is run with this dir as its cwd, standing in for the real
|
||||
// developer checkout it reads its commit identity from (process.cwd()) —
|
||||
// give it a repo-local identity the same way seedRemote gives one to the
|
||||
// seed clone, so the suite is deterministic on a host with no global git
|
||||
// config (a bare CI box) as much as one with a developer's own.
|
||||
execFileSync('git', ['init', '-q', dir])
|
||||
git(['config', 'user.name', 'Wall Entry Test'], dir)
|
||||
git(['config', 'user.email', 'wall-entry-test@example.com'], dir)
|
||||
remoteDir = initBareRemote()
|
||||
cacheDir = join(mkdtempSync(join(tmpdir(), 'wall-cache-')), 'soulcraft-releases')
|
||||
})
|
||||
|
|
|
|||
Reference in a new issue