chrome: git commit info gha fix (#34981)

This commit is contained in:
Pavel Feldman 2025-03-03 07:36:30 -08:00 committed by GitHub
parent 7a2d56d0ff
commit 98443e5749
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 10 deletions

View File

@ -23,6 +23,7 @@ env:
# Force terminal colors. @see https://www.npmjs.com/package/colors
FORCE_COLOR: 1
ELECTRON_SKIP_BINARY_DOWNLOAD: 1
DEBUG_GIT_COMMIT_INFO: 1
jobs:
test_linux:

View File

@ -62,10 +62,10 @@ const gitCommitInfoPlugin = (fullConfig: FullConfigInternal): TestRunnerPlugin =
async function ciInfo(): Promise<CIInfo | undefined> {
if (process.env.GITHUB_ACTIONS) {
let pr: { title: string, number: number } | undefined;
let pr: { title: string, number: number, baseHash: string } | undefined;
try {
const json = JSON.parse(await fs.promises.readFile(process.env.GITHUB_EVENT_PATH!, 'utf8'));
pr = { title: json.pull_request.title, number: json.pull_request.number };
pr = { title: json.pull_request.title, number: json.pull_request.number, baseHash: json.pull_request.base.sha };
} catch {
}
@ -75,7 +75,7 @@ async function ciInfo(): Promise<CIInfo | undefined> {
prTitle: pr ? pr.title : undefined,
buildHref: `${process.env.GITHUB_SERVER_URL}/${process.env.GITHUB_REPOSITORY}/actions/runs/${process.env.GITHUB_RUN_ID}`,
commitHash: process.env.GITHUB_SHA,
baseHash: process.env.GITHUB_BASE_REF,
baseHash: pr ? pr.baseHash : process.env.GITHUB_BASE_REF,
branch: process.env.GITHUB_REF_NAME,
};
}
@ -144,15 +144,11 @@ async function gitCommitInfo(gitDir: string): Promise<GitCommitInfo | undefined>
async function gitDiff(gitDir: string, ci?: CIInfo): Promise<string | undefined> {
const diffLimit = 100_000;
if (ci) {
if (ci?.baseHash) {
// First try the diff against the base branch.
const diff = await runGit(`git diff ${ci.baseHash}`, gitDir);
const diff = await runGit(`git fetch origin ${ci.baseHash} && git diff ${ci.baseHash} HEAD`, gitDir);
if (diff)
return diff.substring(0, diffLimit);
// Grow history for shallow checkout.
const output = await runGit('git fetch --deepen=1 && git show HEAD', gitDir);
return output?.substring(0, diffLimit);
}
// Check dirty state first.
@ -171,7 +167,7 @@ async function runGit(command: string, cwd: string): Promise<string | undefined>
[],
{ stdio: 'pipe', cwd, timeout: GIT_OPERATIONS_TIMEOUT_MS, shell: true }
);
if (result.code) {
if (process.env.DEBUG_GIT_COMMIT_INFO && result.code) {
// eslint-disable-next-line no-console
console.error(`Failed to run ${command}: ${result.stderr}`);
}