mirror of
https://github.com/github/codeql-action.git
synced 2025-12-28 02:00:12 +08:00
57 lines
1.0 KiB
JavaScript
57 lines
1.0 KiB
JavaScript
// @flow
|
|
'use strict';
|
|
|
|
/*::
|
|
type Match = null | { index: number, total: number };
|
|
*/
|
|
|
|
const envs = [
|
|
// Knapsack / TravisCI / GitLab
|
|
{
|
|
index: 'CI_NODE_INDEX',
|
|
total: 'CI_NODE_TOTAL',
|
|
},
|
|
// CircleCI
|
|
{
|
|
index: 'CIRCLE_NODE_INDEX',
|
|
total: 'CIRCLE_NODE_TOTAL',
|
|
},
|
|
// Bitbucket Pipelines
|
|
{
|
|
index: 'BITBUCKET_PARALLEL_STEP',
|
|
total: 'BITBUCKET_PARALLEL_STEP_COUNT',
|
|
},
|
|
// Buildkite
|
|
{
|
|
index: 'BUILDKITE_PARALLEL_JOB',
|
|
total: 'BUILDKITE_PARALLEL_JOB_COUNT',
|
|
},
|
|
// Semaphore
|
|
{
|
|
index: 'SEMAPHORE_CURRENT_JOB',
|
|
total: 'SEMAPHORE_JOB_COUNT',
|
|
},
|
|
];
|
|
|
|
let maybeNum = val => {
|
|
let num = parseInt(val, 10);
|
|
return Number.isNaN(num) ? null : num;
|
|
};
|
|
|
|
let match /*: Match */ = null;
|
|
|
|
for (let env of envs) {
|
|
let index = maybeNum(process.env[env.index]);
|
|
let total = maybeNum(process.env[env.total]);
|
|
|
|
if (index !== null && total !== null) {
|
|
if (process.env.GITLAB_CI) {
|
|
index = index - 1;
|
|
}
|
|
match = { index, total };
|
|
break;
|
|
}
|
|
}
|
|
|
|
module.exports = match;
|