MCPcopy
hub / github.com/firecow/gitlab-ci-local / constructor

Method constructor

src/job.ts:141–287  ·  view source on GitHub ↗
(opt: JobOptions)

Source from the content-addressed store, hash-verified

139 private readonly writeStreams: WriteStreams;
140
141 constructor (opt: JobOptions) {
142 const jobData = opt.data;
143 const jobVariables = jobData.variables ?? {};
144 const variablesFromFiles = opt.variablesFromFiles;
145 const argv = opt.argv;
146 const cwd = argv.cwd;
147 const argvVariables = argv.variable;
148 const expandVariables = opt.expandVariables ?? true;
149
150 this.argv = argv;
151 this.writeStreams = opt.writeStreams;
152 this.gitData = opt.gitData;
153 this.name = opt.name;
154 this.baseName = opt.baseName;
155 this.matrixVariables = opt.matrixVariables;
156 this.jobId = this.generateJobId();
157 this.jobData = opt.data;
158 this.pipelineIid = opt.pipelineIid;
159 this._globalVariables = opt.globalVariables;
160
161 this.inherit = {};
162 this.inherit.variables = this.jobData.inherit?.variables ?? true;
163
164 this.when = jobData.when || "on_success";
165 this.exists = jobData.exists || [];
166 this.allowFailure = jobData.allow_failure ?? false;
167 this.dependencies = jobData.dependencies || null;
168 this.rules = jobData.rules || null;
169 if (typeof jobData.environment === "string") {
170 this.environment = {name: jobData.environment, url: null, deployment_tier: null, action: null};
171 } else if (jobData.environment) {
172 this.environment = {...jobData.environment};
173 } else {
174 this.environment = jobData.environment;
175 }
176
177 const matrixVariables = opt.matrixVariables ?? {};
178 const fileVariables = Utils.findEnvMatchedVariables(variablesFromFiles, this.fileVariablesDir);
179 const predefinedVariables = this._predefinedVariables(opt);
180 this._variables = {...predefinedVariables, ...this.globalVariables, ...jobVariables, ...matrixVariables, ...fileVariables, ...argvVariables};
181
182 if (this.rules && expandVariables) {
183 const expanded = Utils.expandVariables(this._variables);
184
185 // Expand variables in rules:changes
186 this.rules.forEach((rule, ruleIdx, rules) => {
187 const changes = Array.isArray(rule.changes) ? rule.changes : rule.changes?.paths;
188 if (!changes) {
189 return;
190 }
191
192 changes.forEach((change, changeIdx, changes) => {
193 changes[changeIdx] = Utils.expandText(change, expanded);
194 });
195 rules[ruleIdx].changes = changes;
196 });
197
198 // Expand variables in rules:exists

Callers

nothing calls this directly

Calls 9

generateJobIdMethod · 0.95
_predefinedVariablesMethod · 0.95
imageNameMethod · 0.95
expandVariablesMethod · 0.80
expandTextMethod · 0.80
getRulesResultMethod · 0.80

Tested by

no test coverage detected