When running on a schedule, make a better guess about whether we're analyzing the default branch.
This commit is contained in:
parent
92c650bfbd
commit
5960bffd3f
6 changed files with 59 additions and 10 deletions
12
lib/actions-util.js
generated
12
lib/actions-util.js
generated
|
|
@ -659,17 +659,21 @@ function getWorkflowEvent() {
|
||||||
throw new Error(`Unable to read workflow event JSON from ${eventJsonFile}: ${e}`);
|
throw new Error(`Unable to read workflow event JSON from ${eventJsonFile}: ${e}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function removeRefsHeadsPrefix(ref) {
|
||||||
|
return ref.startsWith("refs/heads/") ? ref.slice("refs/heads/".length) : ref;
|
||||||
|
}
|
||||||
// Is the version of the repository we are currently analyzing from the default branch,
|
// Is the version of the repository we are currently analyzing from the default branch,
|
||||||
// or alternatively from another branch or a pull request.
|
// or alternatively from another branch or a pull request.
|
||||||
async function isAnalyzingDefaultBranch() {
|
async function isAnalyzingDefaultBranch() {
|
||||||
var _a;
|
var _a;
|
||||||
// Get the current ref and trim and refs/heads/ prefix
|
// Get the current ref and trim and refs/heads/ prefix
|
||||||
let currentRef = await getRef();
|
let currentRef = await getRef();
|
||||||
currentRef = currentRef.startsWith("refs/heads/")
|
currentRef = removeRefsHeadsPrefix(currentRef);
|
||||||
? currentRef.slice("refs/heads/".length)
|
|
||||||
: currentRef;
|
|
||||||
const event = getWorkflowEvent();
|
const event = getWorkflowEvent();
|
||||||
const defaultBranch = (_a = event === null || event === void 0 ? void 0 : event.repository) === null || _a === void 0 ? void 0 : _a.default_branch;
|
let defaultBranch = (_a = event === null || event === void 0 ? void 0 : event.repository) === null || _a === void 0 ? void 0 : _a.default_branch;
|
||||||
|
if (process.env.GITHUB_EVENT_NAME === "schedule") {
|
||||||
|
defaultBranch = removeRefsHeadsPrefix((0, util_1.getRequiredEnvParam)("GITHUB_REF"));
|
||||||
|
}
|
||||||
return currentRef === defaultBranch;
|
return currentRef === defaultBranch;
|
||||||
}
|
}
|
||||||
exports.isAnalyzingDefaultBranch = isAnalyzingDefaultBranch;
|
exports.isAnalyzingDefaultBranch = isAnalyzingDefaultBranch;
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
17
lib/actions-util.test.js
generated
17
lib/actions-util.test.js
generated
|
|
@ -495,6 +495,23 @@ on: ["push"]
|
||||||
t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), true);
|
t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), true);
|
||||||
process.env["GITHUB_REF"] = "feature";
|
process.env["GITHUB_REF"] = "feature";
|
||||||
t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), false);
|
t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), false);
|
||||||
|
fs.writeFileSync(envFile, JSON.stringify({
|
||||||
|
schedule: "0 0 * * *",
|
||||||
|
}));
|
||||||
|
process.env["GITHUB_EVENT_NAME"] = "schedule";
|
||||||
|
process.env["GITHUB_REF"] = "refs/heads/main";
|
||||||
|
t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), true);
|
||||||
|
const getAdditionalInputStub = sinon.stub(actionsutil, "getOptionalInput");
|
||||||
|
getAdditionalInputStub
|
||||||
|
.withArgs("ref")
|
||||||
|
.resolves("refs/heads/something-else");
|
||||||
|
getAdditionalInputStub
|
||||||
|
.withArgs("sha")
|
||||||
|
.resolves("0000000000000000000000000000000000000000");
|
||||||
|
process.env["GITHUB_EVENT_NAME"] = "schedule";
|
||||||
|
process.env["GITHUB_REF"] = "refs/heads/main";
|
||||||
|
t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), false);
|
||||||
|
getAdditionalInputStub.restore();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
//# sourceMappingURL=actions-util.test.js.map
|
//# sourceMappingURL=actions-util.test.js.map
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -751,5 +751,27 @@ test("isAnalyzingDefaultBranch()", async (t) => {
|
||||||
|
|
||||||
process.env["GITHUB_REF"] = "feature";
|
process.env["GITHUB_REF"] = "feature";
|
||||||
t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), false);
|
t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), false);
|
||||||
|
|
||||||
|
fs.writeFileSync(
|
||||||
|
envFile,
|
||||||
|
JSON.stringify({
|
||||||
|
schedule: "0 0 * * *",
|
||||||
|
})
|
||||||
|
);
|
||||||
|
process.env["GITHUB_EVENT_NAME"] = "schedule";
|
||||||
|
process.env["GITHUB_REF"] = "refs/heads/main";
|
||||||
|
t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), true);
|
||||||
|
|
||||||
|
const getAdditionalInputStub = sinon.stub(actionsutil, "getOptionalInput");
|
||||||
|
getAdditionalInputStub
|
||||||
|
.withArgs("ref")
|
||||||
|
.resolves("refs/heads/something-else");
|
||||||
|
getAdditionalInputStub
|
||||||
|
.withArgs("sha")
|
||||||
|
.resolves("0000000000000000000000000000000000000000");
|
||||||
|
process.env["GITHUB_EVENT_NAME"] = "schedule";
|
||||||
|
process.env["GITHUB_REF"] = "refs/heads/main";
|
||||||
|
t.deepEqual(await actionsutil.isAnalyzingDefaultBranch(), false);
|
||||||
|
getAdditionalInputStub.restore();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -860,17 +860,23 @@ function getWorkflowEvent(): any {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function removeRefsHeadsPrefix(ref: string): string {
|
||||||
|
return ref.startsWith("refs/heads/") ? ref.slice("refs/heads/".length) : ref;
|
||||||
|
}
|
||||||
|
|
||||||
// Is the version of the repository we are currently analyzing from the default branch,
|
// Is the version of the repository we are currently analyzing from the default branch,
|
||||||
// or alternatively from another branch or a pull request.
|
// or alternatively from another branch or a pull request.
|
||||||
export async function isAnalyzingDefaultBranch(): Promise<boolean> {
|
export async function isAnalyzingDefaultBranch(): Promise<boolean> {
|
||||||
// Get the current ref and trim and refs/heads/ prefix
|
// Get the current ref and trim and refs/heads/ prefix
|
||||||
let currentRef = await getRef();
|
let currentRef = await getRef();
|
||||||
currentRef = currentRef.startsWith("refs/heads/")
|
currentRef = removeRefsHeadsPrefix(currentRef);
|
||||||
? currentRef.slice("refs/heads/".length)
|
|
||||||
: currentRef;
|
|
||||||
|
|
||||||
const event = getWorkflowEvent();
|
const event = getWorkflowEvent();
|
||||||
const defaultBranch = event?.repository?.default_branch;
|
let defaultBranch = event?.repository?.default_branch;
|
||||||
|
|
||||||
|
if (process.env.GITHUB_EVENT_NAME === "schedule") {
|
||||||
|
defaultBranch = removeRefsHeadsPrefix(getRequiredEnvParam("GITHUB_REF"));
|
||||||
|
}
|
||||||
|
|
||||||
return currentRef === defaultBranch;
|
return currentRef === defaultBranch;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue