@robotical/martyblocks
Version:
MartyBlocks based on Scratch for Marty the Robot by Robotical
50 lines (43 loc) • 1.48 kB
JavaScript
// https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables
const {parseBranch} = require('../lib/utils.js');
const getPrEvent = ({env}) => {
try {
const event = env.GITHUB_EVENT_PATH ? require(env.GITHUB_EVENT_PATH) : undefined;
if (event && event.pull_request) {
return {
branch: event.pull_request.base ? parseBranch(event.pull_request.base.ref) : undefined,
pr: event.pull_request.number,
};
}
} catch {
// Noop
}
return {pr: undefined, branch: undefined};
};
const getPrNumber = (env) => {
const event = env.GITHUB_EVENT_PATH ? require(env.GITHUB_EVENT_PATH) : undefined;
return event && event.pull_request ? event.pull_request.number : undefined;
};
module.exports = {
detect({env}) {
return Boolean(env.GITHUB_ACTIONS);
},
configuration({env, cwd}) {
const isPr = env.GITHUB_EVENT_NAME === 'pull_request' || env.GITHUB_EVENT_NAME === 'pull_request_target';
const branch = parseBranch(
env.GITHUB_EVENT_NAME === 'pull_request_target' ? `refs/pull/${getPrNumber(env)}/merge` : env.GITHUB_REF
);
return {
name: 'GitHub Actions',
service: 'github',
commit: env.GITHUB_SHA,
build: env.GITHUB_RUN_ID,
isPr,
branch,
prBranch: isPr ? branch : undefined,
slug: env.GITHUB_REPOSITORY,
root: env.GITHUB_WORKSPACE,
...(isPr ? getPrEvent({env, cwd}) : undefined),
};
},
};