@catladder/cli
Version:
Panter cli tool for cloud CI/CD and DevOps
49 lines (48 loc) • 2.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createAppBuildJob = void 0;
const lodash_es_1 = require("lodash-es");
const __1 = require("../..");
const utils_1 = require("../../utils");
const createBuildJobArtifact_1 = require("../artifacts/createBuildJobArtifact");
const createJobCache_1 = require("../cache/createJobCache");
const yarn_1 = require("../node/yarn");
const constants_1 = require("./constants");
const writeBuildInfo_1 = require("./writeBuildInfo");
const writeDotEnv_1 = require("./writeDotEnv");
const createAppBuildJob = async (context, {
script,
variables,
runnerVariables,
cache,
...def
}) => {
var _a;
return (0, lodash_es_1.merge)({
name: constants_1.APP_BUILD_JOB_NAME,
envMode: "jobPerEnv",
stage: "build",
image: (0, __1.getRunnerImage)("jobs-default"),
needs: [],
cache: cache ? (0, createJobCache_1.createJobCacheFromCacheConfigs)(context, cache) : undefined,
variables: {
...(variables !== null && variables !== void 0 ? variables : {}),
...(context.type === "component" ? {
...context.environment.envVars,
...context.environment.jobOnlyVars.build.envVars
} : {})
},
runnerVariables: {
...constants_1.RUNNER_BUILD_RESOURCE_VARIABLES,
...(runnerVariables !== null && runnerVariables !== void 0 ? runnerVariables : {}),
...((_a = context.build.config.runnerVariables) !== null && _a !== void 0 ? _a : {})
},
script: [...(context.type === "component" ? (0, writeDotEnv_1.componentContextNeedsBuildTimeDotEnv)(context) ? (0, writeDotEnv_1.writeDotEnv)(context) : [] : context.type === "workspace" ? context.components.filter(c => (0, writeDotEnv_1.componentContextNeedsBuildTimeDotEnv)(c)).flatMap(c => (0, writeDotEnv_1.writeDotEnv)(c)) : []), ...(context.type === "component" ? (0, writeBuildInfo_1.writeBuildInfo)(context) : []), ...(0, yarn_1.ensureNodeVersion)(context),
// in pure node repos, we might want to have the nvmrc file in top-level
`cd ${context.build.dir}`, ...(0, utils_1.ensureArray)(script)],
artifacts: await (0, createBuildJobArtifact_1.createBuildJobArtifacts)(context)
}, def);
};
exports.createAppBuildJob = createAppBuildJob;