gitlab-ci-local
Version:
Tired of pushing to test your .gitlab-ci.yml?
22 lines • 3.79 kB
JavaScript
import fs from "fs-extra";
import * as yaml from "js-yaml";
const loadStateYML = async (stateFile) => {
if (!fs.existsSync(stateFile)) {
return {};
}
const stateFileContent = await fs.readFile(stateFile, "utf8");
return yaml.load(stateFileContent) || {};
};
const getPipelineIid = async (cwd, stateDir) => {
const stateFile = `${cwd}/${stateDir}/state.yml`;
const ymlData = await loadStateYML(stateFile);
return ymlData["pipelineIid"] ? ymlData["pipelineIid"] : 0;
};
const incrementPipelineIid = async (cwd, stateDir) => {
const stateFile = `${cwd}/${stateDir}/state.yml`;
const ymlData = await loadStateYML(stateFile);
ymlData["pipelineIid"] = ymlData["pipelineIid"] != null ? ymlData["pipelineIid"] + 1 : 0;
await fs.outputFile(stateFile, `---\n${yaml.dump(ymlData)}`);
};
export { getPipelineIid, incrementPipelineIid };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUIsT0FBTyxLQUFLLElBQUksTUFBTSxTQUFTLENBQUM7QUFFaEMsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLFNBQWlCLEVBQWdCLEVBQUU7SUFDM0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQzNELE1BQU0sU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJLFFBQVEsWUFBWSxDQUFDO0lBQ2pELE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlDLE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQ2pFLE1BQU0sU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJLFFBQVEsWUFBWSxDQUFDO0lBQ2pELE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBQyxjQUFjLEVBQUUsb0JBQW9CLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIHlhbWwgZnJvbSBcImpzLXlhbWxcIjtcblxuY29uc3QgbG9hZFN0YXRlWU1MID0gYXN5bmMgKHN0YXRlRmlsZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoc3RhdGVGaWxlKSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHN0YXRlRmlsZUNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShzdGF0ZUZpbGUsIFwidXRmOFwiKTtcbiAgICByZXR1cm4geWFtbC5sb2FkKHN0YXRlRmlsZUNvbnRlbnQpIHx8IHt9O1xufTtcblxuY29uc3QgZ2V0UGlwZWxpbmVJaWQgPSBhc3luYyAoY3dkOiBzdHJpbmcsIHN0YXRlRGlyOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBzdGF0ZUZpbGUgPSBgJHtjd2R9LyR7c3RhdGVEaXJ9L3N0YXRlLnltbGA7XG4gICAgY29uc3QgeW1sRGF0YSA9IGF3YWl0IGxvYWRTdGF0ZVlNTChzdGF0ZUZpbGUpO1xuXG4gICAgcmV0dXJuIHltbERhdGFbXCJwaXBlbGluZUlpZFwiXSA/IHltbERhdGFbXCJwaXBlbGluZUlpZFwiXSA6IDA7XG59O1xuXG5jb25zdCBpbmNyZW1lbnRQaXBlbGluZUlpZCA9IGFzeW5jIChjd2Q6IHN0cmluZywgc3RhdGVEaXI6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHN0YXRlRmlsZSA9IGAke2N3ZH0vJHtzdGF0ZURpcn0vc3RhdGUueW1sYDtcbiAgICBjb25zdCB5bWxEYXRhID0gYXdhaXQgbG9hZFN0YXRlWU1MKHN0YXRlRmlsZSk7XG5cbiAgICB5bWxEYXRhW1wicGlwZWxpbmVJaWRcIl0gPSB5bWxEYXRhW1wicGlwZWxpbmVJaWRcIl0gIT0gbnVsbCA/IHltbERhdGFbXCJwaXBlbGluZUlpZFwiXSArIDEgOiAwO1xuICAgIGF3YWl0IGZzLm91dHB1dEZpbGUoc3RhdGVGaWxlLCBgLS0tXFxuJHt5YW1sLmR1bXAoeW1sRGF0YSl9YCk7XG59O1xuXG5leHBvcnQge2dldFBpcGVsaW5lSWlkLCBpbmNyZW1lbnRQaXBlbGluZUlpZH07XG4iXX0=