sfdx-hardis 6.9.1-alpha202510261312.0 → 6.9.1-alpha202510261844.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,14 +4,16 @@ import fs from 'fs-extra';
4
4
  import yaml from 'js-yaml';
5
5
  import * as path from 'path';
6
6
  import { getConfig } from '../../config/index.js';
7
- import { execCommand, uxLog } from './index.js';
7
+ import { uxLog } from './index.js';
8
8
  import { GitProvider } from '../gitProvider/index.js';
9
9
  import { checkSfdxHardisTraceAvailable, listMajorOrgs } from './orgConfigUtils.js';
10
10
  import { soqlQuery } from './apiUtils.js';
11
- import { findDataWorkspaceByName, importData } from './dataUtils.js';
11
+ // data import moved to DataAction class in actionsProvider
12
12
  import { getPullRequestData, setPullRequestData } from './gitUtils.js';
13
+ import { ActionsProvider } from '../actionsProvider/actionsProvider.js';
13
14
  export async function executePrePostCommands(property, options) {
14
15
  const actionLabel = property === 'commandsPreDeploy' ? 'Pre-deployment actions' : 'Post-deployment actions';
16
+ uxLog("action", this, c.cyan(`[DeploymentActions] Listing ${actionLabel}...`));
15
17
  const branchConfig = await getConfig('branch');
16
18
  const commands = [...(branchConfig[property] || []), ...(options.extraCommands || [])];
17
19
  await completeWithCommandsFromPullRequests(property, commands);
@@ -22,9 +24,16 @@ export async function executePrePostCommands(property, options) {
22
24
  }
23
25
  uxLog("action", this, c.cyan(`[DeploymentActions] Found ${commands.length} ${actionLabel} to run`));
24
26
  for (const cmd of commands) {
27
+ const actionsInstance = await ActionsProvider.buildActionInstance(cmd);
28
+ const actionsIssues = await actionsInstance.checkValidityIssues(cmd);
29
+ if (actionsIssues) {
30
+ cmd.result = actionsIssues;
31
+ uxLog("error", this, c.red(`[DeploymentActions] Action ${cmd.label} is not valid: ${actionsIssues.skippedReason}`));
32
+ continue;
33
+ }
25
34
  // If if skipIfError is true and deployment failed
26
35
  if (options.success === false && cmd.skipIfError === true) {
27
- uxLog("action", this, c.yellow(`[DeploymentActions] Skipping skipIfError=true action [${cmd.id}]: ${cmd.label}`));
36
+ uxLog("action", this, c.yellow(`[DeploymentActions] Skipping ${cmd.label} (skipIfError=true) `));
28
37
  cmd.result = {
29
38
  statusCode: "skipped",
30
39
  skippedReason: "skipIfError is true and deployment failed"
@@ -34,7 +43,7 @@ export async function executePrePostCommands(property, options) {
34
43
  // Skip if we are in another context than the requested one
35
44
  const cmdContext = cmd.context || "all";
36
45
  if (cmdContext === "check-deployment-only" && options.checkOnly === false) {
37
- uxLog("action", this, c.grey(`[DeploymentActions] Skipping check-deployment-only action as we are in process deployment mode [${cmd.id}]: ${cmd.label}`));
46
+ uxLog("action", this, c.grey(`[DeploymentActions] Skipping ${cmd.label}: check-deployment-only action, and we are in process deployment mode`));
38
47
  cmd.result = {
39
48
  statusCode: "skipped",
40
49
  skippedReason: "Action context is check-deployment-only but we are in process deployment mode"
@@ -42,7 +51,7 @@ export async function executePrePostCommands(property, options) {
42
51
  continue;
43
52
  }
44
53
  if (cmdContext === "process-deployment-only" && options.checkOnly === true) {
45
- uxLog("action", this, c.grey(`[DeploymentActions] Skipping process-deployment-only action as we are in check deployment mode [${cmd.id}]: ${cmd.label}`));
54
+ uxLog("action", this, c.grey(`[DeploymentActions] Skipping ${cmd.label}: process-deployment-only action as we are in check deployment mode`));
46
55
  cmd.result = {
47
56
  statusCode: "skipped",
48
57
  skippedReason: "Action context is process-deployment-only but we are in check deployment mode"
@@ -55,7 +64,7 @@ export async function executePrePostCommands(property, options) {
55
64
  const commandTraceQuery = `SELECT Id,CreatedDate FROM SfdxHardisTrace__c WHERE Type__c='${property}' AND Key__c='${cmd.id}' LIMIT 1`;
56
65
  const commandTraceRes = await soqlQuery(commandTraceQuery, options.conn);
57
66
  if (commandTraceRes?.records?.length > 0) {
58
- uxLog("action", this, c.grey(`[DeploymentActions] Skipping action [${cmd.id}]: ${cmd.label} because it has been defined with runOnlyOnceByOrg and has already been run on ${commandTraceRes.records[0].CreatedDate}`));
67
+ uxLog("action", this, c.grey(`[DeploymentActions] Skipping ${cmd.label}: it has been defined with runOnlyOnceByOrg and has already been run on ${commandTraceRes.records[0].CreatedDate}`));
59
68
  cmd.result = {
60
69
  statusCode: "skipped",
61
70
  skippedReason: "runOnlyOnceByOrg is true and command has already been run on this org"
@@ -64,7 +73,7 @@ export async function executePrePostCommands(property, options) {
64
73
  }
65
74
  }
66
75
  // Run command
67
- uxLog("action", this, c.cyan(`[DeploymentActions] Running action [${cmd.id}]: ${cmd.label}`));
76
+ uxLog("action", this, c.cyan(`[DeploymentActions] Running action ${cmd.label}`));
68
77
  await executeAction(cmd);
69
78
  if (cmd.result?.statusCode === "success" && runOnlyOnceByOrg) {
70
79
  const hardisTraceRecord = {
@@ -81,7 +90,7 @@ export async function executePrePostCommands(property, options) {
81
90
  }
82
91
  }
83
92
  else if (cmd.result?.statusCode === "failed" && cmd.allowFailure !== true) {
84
- uxLog("error", this, c.red(`[DeploymentActions] Action [${cmd.id}] failed, stopping execution of further actions.`));
93
+ uxLog("error", this, c.red(`[DeploymentActions] Action ${cmd.label} failed, stopping execution of further actions.`));
85
94
  break;
86
95
  }
87
96
  }
@@ -167,14 +176,21 @@ function recursiveGetChildBranches(branchName, majorOrgs, collected = new Set())
167
176
  async function checkForDraftCommandsFile(property) {
168
177
  const prConfigFileName = path.join("scripts", "actions", `.sfdx-hardis.draft.yml`);
169
178
  if (fs.existsSync(prConfigFileName)) {
170
- const errorMessage = `Draft commands file ${prConfigFileName} found.
171
- Please assign it to a Pull Request before proceeding., or delete it if you don't need it
172
- To assign it, rename the file to .sfdx-hardis.PULL_REQUEST_ID.yml, replacing PULL_REQUEST_ID with the actual ID of the Pull Request.
173
- Example: .sfdx-hardis.123.yml`;
179
+ let suggestedFileName = ".sfdx-hardis.PULL_REQUEST_ID.yml (ex: .sfdx-hardis.123.yml)";
180
+ const prInfo = await GitProvider.getPullRequestInfo();
181
+ if (prInfo && prInfo.idStr) {
182
+ suggestedFileName = `.sfdx-hardis.${prInfo.idStr}.yml`;
183
+ }
184
+ const errorMessage = `Draft deployment actions file ${prConfigFileName} found.
185
+
186
+ Please assign it to a Pull Request before proceeding, or delete the file it if you don't need it.
187
+
188
+ To assign it, rename .sfdx-hardis.draft.yml into ${suggestedFileName}.
189
+ `;
174
190
  const propertyFormatted = property === 'commandsPreDeploy' ? 'preDeployCommandsResultMarkdownBody' : 'postDeployCommandsResultMarkdownBody';
175
191
  let prData = getPullRequestData();
176
192
  prData = Object.assign(prData, {
177
- title: "❌ Error: Draft manual actions file found",
193
+ title: "❌ Error: Draft deployment actions file found",
178
194
  messageKey: prData.messageKey ?? 'deployment',
179
195
  [propertyFormatted]: errorMessage
180
196
  });
@@ -185,174 +201,20 @@ Example: .sfdx-hardis.123.yml`;
185
201
  }
186
202
  }
187
203
  async function executeAction(cmd) {
188
- switch (cmd.type || 'command') {
189
- case 'command':
190
- await executeActionCommand(cmd);
191
- break;
192
- case 'apex':
193
- await executeActionApex(cmd);
194
- break;
195
- case 'data':
196
- await executeActionData(cmd);
197
- break;
198
- case 'publish-community':
199
- await executeActionPublishCommunity(cmd);
200
- break;
201
- case 'manual':
202
- await executeActionManual(cmd);
203
- break;
204
- default:
205
- uxLog("error", this, c.yellow(`[DeploymentActions] Action type [${cmd.type}] is not yet implemented for action [${cmd.id}]: ${cmd.label}`));
206
- cmd.result = {
207
- statusCode: "failed",
208
- skippedReason: `Action type [${cmd.type}] is not implemented`
209
- };
210
- break;
211
- }
212
- }
213
- /* jscpd:ignore-start */
214
- async function executeActionCommand(cmd) {
215
- const command = cmd.command;
216
- if (!command) {
217
- uxLog("error", this, c.red(`[DeploymentActions] No command provided for action [${cmd.id}]: ${cmd.label}`));
218
- cmd.result = {
219
- statusCode: "failed",
220
- skippedReason: "No command provided"
221
- };
222
- return;
223
- }
224
- const commandRes = await execCommand(cmd.command, this, { fail: false, output: true });
225
- if (commandRes.status === 0) {
226
- uxLog("success", this, c.green(`[DeploymentActions] Action [${cmd.id}] executed successfully`));
227
- cmd.result = {
228
- statusCode: "success",
229
- output: (commandRes.stdout || "") + "\n" + (commandRes.stderr || "")
230
- };
231
- }
232
- else {
233
- uxLog("error", this, c.red(`[DeploymentActions] Action [${cmd.id}] failed with status code ${commandRes.status}`));
234
- cmd.result = {
235
- statusCode: "failed",
236
- output: (commandRes.stdout || "") + "\n" + (commandRes.stderr || "")
237
- };
238
- }
239
- }
240
- async function executeActionApex(cmd) {
241
- const apexScript = cmd.parameters?.apexScript || '';
242
- if (!apexScript) {
243
- uxLog("error", this, c.red(`[DeploymentActions] No apexScript parameter provided for action [${cmd.id}]: ${cmd.label}`));
244
- cmd.result = {
245
- statusCode: "failed",
246
- skippedReason: "No apexScript parameter provided"
247
- };
248
- return;
249
- }
250
- if (!fs.existsSync(apexScript)) {
251
- uxLog("error", this, c.red(`[DeploymentActions] Apex script file ${apexScript} does not exist for action [${cmd.id}]: ${cmd.label}`));
252
- cmd.result = {
253
- statusCode: "failed",
254
- skippedReason: `Apex script file ${apexScript} does not exist`
255
- };
256
- return;
257
- }
258
- const apexCommand = `sf apex run --file ${apexScript}`;
259
- const commandRes = await execCommand(apexCommand, this, { fail: false, output: true });
260
- if (commandRes.status === 0) {
261
- uxLog("success", this, c.green(`[DeploymentActions] Apex action [${cmd.id}] executed successfully`));
262
- cmd.result = {
263
- statusCode: "success",
264
- output: (commandRes.stdout || "") + "\n" + (commandRes.stderr || "")
265
- };
266
- }
267
- else {
268
- uxLog("error", this, c.red(`[DeploymentActions] Apex action [${cmd.id}] failed with status code ${commandRes.status}`));
269
- cmd.result = {
270
- statusCode: "failed",
271
- output: (commandRes.stdout || "") + "\n" + (commandRes.stderr || "")
272
- };
273
- }
274
- }
275
- async function executeActionData(cmd) {
276
- const sfdmuProject = cmd.parameters?.sfdmuProject || '';
277
- if (!sfdmuProject) {
278
- uxLog("error", this, c.red(`[DeploymentActions] No sfdmuProject parameter provided for action [${cmd.id}]: ${cmd.label}`));
279
- cmd.result = {
280
- statusCode: "failed",
281
- skippedReason: "No sfdmuProject parameter provided"
282
- };
283
- return;
284
- }
285
- const sfdmuPath = await findDataWorkspaceByName(sfdmuProject);
286
- if (!sfdmuPath) {
287
- uxLog("error", this, c.red(`[DeploymentActions] sfdmu project ${sfdmuProject} not found for action [${cmd.id}]: ${cmd.label}`));
288
- cmd.result = {
289
- statusCode: "failed",
290
- skippedReason: `sfdmu project ${sfdmuProject} not found`
291
- };
292
- return;
293
- }
294
- let res;
204
+ // Use ActionsProvider classes to execute actions
205
+ const actionInstance = await ActionsProvider.buildActionInstance(cmd);
295
206
  try {
296
- res = await importData(sfdmuPath, this);
207
+ const res = await actionInstance.run(cmd);
208
+ cmd.result = res;
297
209
  }
298
210
  catch (e) {
299
- uxLog("error", this, c.red(`[DeploymentActions] Data import action [${cmd.id}] failed: ${e.message}`));
211
+ uxLog("error", this, c.red(`[DeploymentActions] Exception while running action ${cmd.label}: ${e.message}`));
300
212
  cmd.result = {
301
- statusCode: "failed",
213
+ statusCode: 'failed',
302
214
  output: e.message
303
215
  };
304
- return;
305
216
  }
306
- uxLog("success", this, c.green(`[DeploymentActions] Data import action [${cmd.id}] executed successfully`));
307
- cmd.result = {
308
- statusCode: "success",
309
- output: (res.stdout || "") + "\n" + (res.stderr || "")
310
- };
311
- }
312
- async function executeActionPublishCommunity(cmd) {
313
- const communityName = cmd.parameters?.communityName || '';
314
- if (!communityName) {
315
- uxLog("error", this, c.red(`[DeploymentActions] No communityName parameter provided for action [${cmd.id}]: ${cmd.label}`));
316
- cmd.result = {
317
- statusCode: "failed",
318
- skippedReason: "No communityName parameter provided"
319
- };
320
- return;
321
- }
322
- const publishCommand = `sf community publish --name "${communityName}"`;
323
- const commandRes = await execCommand(publishCommand, this, { fail: false, output: true });
324
- if (commandRes.status === 0) {
325
- uxLog("success", this, c.green(`[DeploymentActions] Publish community action [${cmd.id}] executed successfully`));
326
- cmd.result = {
327
- statusCode: "success",
328
- output: (commandRes.stdout || "") + "\n" + (commandRes.stderr || "")
329
- };
330
- }
331
- else {
332
- uxLog("error", this, c.red(`[DeploymentActions] Publish community action [${cmd.id}] failed with status code ${commandRes.status}`));
333
- cmd.result = {
334
- statusCode: "failed",
335
- output: (commandRes.stdout || "") + "\n" + (commandRes.stderr || "")
336
- };
337
- }
338
- }
339
- async function executeActionManual(cmd) {
340
- const instructions = cmd.parameters?.instructions || '';
341
- if (!instructions) {
342
- uxLog("error", this, c.red(`[DeploymentActions] No instructions parameter provided for manual action [${cmd.id}]: ${cmd.label}`));
343
- cmd.result = {
344
- statusCode: "failed",
345
- skippedReason: "No instructions parameter provided"
346
- };
347
- return;
348
- }
349
- uxLog("success", this, c.green(`[DeploymentActions] Manual action [${cmd.id}] requires manual intervention:\n${instructions}`));
350
- cmd.result = {
351
- statusCode: "success",
352
- output: `Manual action instructions:\n${instructions}`
353
- };
354
217
  }
355
- /* jscpd:ignore-end */
356
218
  function manageResultMarkdownBody(property, commands) {
357
219
  let markdownBody = `### ${property === 'commandsPreDeploy' ? 'Pre-deployment Actions' : 'Post-deployment Actions'} Results\n\n`;
358
220
  // Build markdown table
@@ -362,7 +224,7 @@ function manageResultMarkdownBody(property, commands) {
362
224
  const statusIcon = cmd.result?.statusCode === "success" ? '✅' :
363
225
  cmd.result?.statusCode === "failed" ? '❌' :
364
226
  cmd.result?.statusCode === "skipped" ? '⚪' : '❓';
365
- markdownBody += `| ${cmd.label} | ${cmd.type} | ${statusIcon} ${cmd.result?.statusCode || 'not run'} |\n`;
227
+ markdownBody += `| ${cmd.label} | ${cmd.type || 'command'} | ${statusIcon} ${cmd.result?.statusCode || 'not run'} |\n`;
366
228
  }
367
229
  // Add details in html <detail> blocks, embedded in a root <details> block to avoid markdown rendering issues
368
230
  markdownBody += `\n<details>\n<summary>Expand to see details for each action</summary>\n\n`;
@@ -374,7 +236,7 @@ function manageResultMarkdownBody(property, commands) {
374
236
  if (outputForMarkdown.length > maxOutputLength) {
375
237
  outputForMarkdown = outputForMarkdown.substring(0, maxOutputLength) + `\n\n... Output truncated to ${maxOutputLength} characters ...`;
376
238
  }
377
- markdownBody += `\n<details id="command-${cmd.id}">\n<summary>Details for command ${cmd.id} - ${cmd.label}</summary>\n\n`;
239
+ markdownBody += `\n<details id="command-${cmd.id}">\n<summary>${cmd.label}</summary>\n\n`;
378
240
  markdownBody += '```\n';
379
241
  markdownBody += outputForMarkdown;
380
242
  markdownBody += '\n```\n';
@@ -1 +1 @@
1
- {"version":3,"file":"prePostCommandUtils.js","sourceRoot":"","sources":["../../../src/common/utils/prePostCommandUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prePostCommandUtils.js","sourceRoot":"","sources":["../../../src/common/utils/prePostCommandUtils.ts"],"names":[],"mappings":"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"}