@catladder/cli
Version:
Panter cli tool for cloud CI/CD and DevOps
55 lines • 2.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAppBuildJob = void 0;
const lodash_1 = require("lodash");
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 = (context, { script, variables, runnerVariables, cache, ...def }) => {
var _a;
return (0, lodash_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: (0, createBuildJobArtifact_1.createBuildJobArtifacts)(context),
}, def);
};
exports.createAppBuildJob = createAppBuildJob;
//# sourceMappingURL=createAppBuildJob.js.map