@simplysf/simply-cicd-core 0.9.1 → 0.10.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.
- package/README.md +9 -9
- package/lib/build/createScratchOrg.js +28 -8
- package/lib/build/createScratchOrg.js.map +1 -1
- package/lib/sfOrg.d.ts +23 -0
- package/lib/sfOrg.js +16 -3
- package/lib/sfOrg.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -57,15 +57,15 @@ const mr = await gitlab.findMergeRequest({ sourceBranch: 'feature/x' });
|
|
|
57
57
|
|
|
58
58
|
The modules `@simplysf/simply-cicd`'s commands run, also exported from the package root. Each stage function takes a plain options object (the camelCase equivalent of the command's flags) and throws on failure. Full signatures are in the [API reference](https://simplysf.github.io/simply-plugins-core/api/simply-cicd-core/readme/).
|
|
59
59
|
|
|
60
|
-
| Area | Main exports
|
|
61
|
-
| ------------------------------------- |
|
|
62
|
-
| Build | `createScratchOrg`, `deleteScratchOrg`, `cleanupScratchOrgs`, `pushToScratch`, `runScratchApexTests`, `installDependencies`, `createPackageVersion`, `createFallbackTag`, `determinePackageChanges`, `runLwcJest`, `runCheckPermissionSets`, `runFlowDelta`, `runFlexipageDelta`, `publishUtamPageObjects`, `VersionTagFormat`
|
|
63
|
-
| Deploy | `deployProject`, `deployHappySoup`, `runDeployStage`, `validateDeployFiles`, `toProjectStageOptions`, `toHappySoupStageOptions`, plus the `deployCommon` helpers (`runDeploymentSteps`, `loadProgress`, `updateProgress`, `installDeployPackageDependencies`, `runDeployApexTests`, …)
|
|
64
|
-
| Notify | `sendBuildNotification`, `projectNotifyBeforeScript`/`projectNotifyAfterScript`, `happySoupNotifyBeforeScript`/`happySoupNotifyAfterScript`, `getCommitStories`, `getRemoteCommitStories`, `sendNotification`, `renderNotifyTemplate`, `NOTIFY_TEMPLATES`
|
|
65
|
-
| sfdx-dependabot | `discoverEligibleProjects`, `processProject`, `applyProjectUpdate`, `updateSfdxProject`
|
|
66
|
-
| Schemas (zod) | `deployConfigSchema`, `deployProgressSchema`, `deployRulesSchema`, `deployStageSchema`
|
|
67
|
-
| Salesforce org and package operations | `authenticateOrg` (JWT or SFDX auth URL), `requestPackageVersionCreate`, `getPackageVersionCreateStatus`, `deployProjectSource`, `getPackageVersionReport`, `listInstalledPackages`, `getOrgConnection`, `getOrgInstanceUrl`, `getRemainingDailyScratchOrgs
|
|
68
|
-
| `sf`/`git`/env utilities | `runSf`, `runSfJson`, `installPackageDependencies`, `runApexTests`, `installPlugin`, `cloneRepo`, `appendToEnvFile`, `resolveString`/`resolveBoolean`, `logger`
|
|
60
|
+
| Area | Main exports |
|
|
61
|
+
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
62
|
+
| Build | `createScratchOrg`, `deleteScratchOrg`, `cleanupScratchOrgs`, `pushToScratch`, `runScratchApexTests`, `installDependencies`, `createPackageVersion`, `createFallbackTag`, `determinePackageChanges`, `runLwcJest`, `runCheckPermissionSets`, `runFlowDelta`, `runFlexipageDelta`, `publishUtamPageObjects`, `VersionTagFormat` |
|
|
63
|
+
| Deploy | `deployProject`, `deployHappySoup`, `runDeployStage`, `validateDeployFiles`, `toProjectStageOptions`, `toHappySoupStageOptions`, plus the `deployCommon` helpers (`runDeploymentSteps`, `loadProgress`, `updateProgress`, `installDeployPackageDependencies`, `runDeployApexTests`, …) |
|
|
64
|
+
| Notify | `sendBuildNotification`, `projectNotifyBeforeScript`/`projectNotifyAfterScript`, `happySoupNotifyBeforeScript`/`happySoupNotifyAfterScript`, `getCommitStories`, `getRemoteCommitStories`, `sendNotification`, `renderNotifyTemplate`, `NOTIFY_TEMPLATES` |
|
|
65
|
+
| sfdx-dependabot | `discoverEligibleProjects`, `processProject`, `applyProjectUpdate`, `updateSfdxProject` |
|
|
66
|
+
| Schemas (zod) | `deployConfigSchema`, `deployProgressSchema`, `deployRulesSchema`, `deployStageSchema` |
|
|
67
|
+
| Salesforce org and package operations | `authenticateOrg` (JWT or SFDX auth URL), `requestPackageVersionCreate`, `getPackageVersionCreateStatus`, `deployProjectSource`, `getPackageVersionReport`, `listInstalledPackages`, `getOrgConnection`, `getOrgInstanceUrl`, `getScratchOrgCapacity` (daily and active scratch org limits), `getRemainingDailyScratchOrgs` (deprecated), `assignPermissionSets`, `assignPermissionSetLicenses` (`AssignmentError`), `createScratchOrgOnHub`, `deleteTargetScratchOrg` (in-process via `@salesforce/core` / `@salesforce/packaging`, no `sf` needed) |
|
|
68
|
+
| `sf`/`git`/env utilities | `runSf`, `runSfJson`, `installPackageDependencies`, `runApexTests`, `installPlugin`, `cloneRepo`, `appendToEnvFile`, `resolveString`/`resolveBoolean`, `logger` |
|
|
69
69
|
|
|
70
70
|
```ts
|
|
71
71
|
import { deployProject } from '@simplysf/simply-cicd-core';
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { promises as fs } from 'node:fs';
|
|
17
17
|
import { getDefaultPackageDirectory, readSfdxProject } from '@simplysf/simply-core';
|
|
18
18
|
import { logger } from '../logger.js';
|
|
19
|
-
import { assignPermissionSetLicenses as assignLicensesToOrgUser, assignPermissionSets as assignPermissionSetsToOrgUser, createScratchOrgOnHub, getOrgConnection,
|
|
19
|
+
import { assignPermissionSetLicenses as assignLicensesToOrgUser, assignPermissionSets as assignPermissionSetsToOrgUser, createScratchOrgOnHub, getOrgConnection, getScratchOrgCapacity, } from '../sfOrg.js';
|
|
20
20
|
import { resolveDevHubs } from './devHubs.js';
|
|
21
21
|
async function assignPermissionSets(permissionSets, username) {
|
|
22
22
|
if (permissionSets.length === 0) {
|
|
@@ -70,13 +70,32 @@ async function trySetDefaultCountry(username) {
|
|
|
70
70
|
logger.info('State/Country picklists not detected. Skipping default country update.');
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* The Dev Hub's limits when it can take a signup right now, or why it can't. A signup needs room
|
|
75
|
+
* under both limits: one left for today (`DailyScratchOrgs`), and a free slot under the number that
|
|
76
|
+
* may exist at once (`ActiveScratchOrgs`). A limit the org doesn't report counts as no room, since
|
|
77
|
+
* only a Dev Hub reports them.
|
|
78
|
+
*/
|
|
79
|
+
function checkCapacity({ daily, active }) {
|
|
80
|
+
if (!daily || !active) {
|
|
81
|
+
return 'does not report its scratch org limits (is it a Dev Hub?)';
|
|
82
|
+
}
|
|
83
|
+
if (daily.remaining <= 0) {
|
|
84
|
+
return `has no scratch org signups left today (daily limit ${daily.max})`;
|
|
85
|
+
}
|
|
86
|
+
if (active.remaining <= 0) {
|
|
87
|
+
return `is at its active scratch org limit (${active.max} active)`;
|
|
88
|
+
}
|
|
89
|
+
return { daily, active };
|
|
90
|
+
}
|
|
73
91
|
async function attemptScratchOrgCreation(hub, definitionFile, durationDays) {
|
|
74
|
-
const
|
|
75
|
-
if (
|
|
76
|
-
logger.warn(`Dev Hub ${hub.alias}
|
|
92
|
+
const capacity = checkCapacity(await getScratchOrgCapacity(hub.username));
|
|
93
|
+
if (typeof capacity === 'string') {
|
|
94
|
+
logger.warn(`Dev Hub ${hub.alias} ${capacity}. Skipping.`);
|
|
77
95
|
return undefined;
|
|
78
96
|
}
|
|
79
|
-
|
|
97
|
+
const { daily, active } = capacity;
|
|
98
|
+
logger.info(`Attempting to create scratch org with Dev Hub ${hub.alias} (${daily.remaining} signups left today, ${active.remaining} of ${active.max} active slots free).`);
|
|
80
99
|
const createResult = await createScratchOrgOnHub(hub.username, {
|
|
81
100
|
definitionFile,
|
|
82
101
|
durationDays,
|
|
@@ -88,8 +107,9 @@ async function attemptScratchOrgCreation(hub, definitionFile, durationDays) {
|
|
|
88
107
|
return createResult;
|
|
89
108
|
}
|
|
90
109
|
/**
|
|
91
|
-
* The Dev Hub refusing the signup because its daily allocation is used up
|
|
92
|
-
*
|
|
110
|
+
* The Dev Hub refusing the signup because its daily or active allocation is used up, which can
|
|
111
|
+
* still happen after the capacity check when another pipeline signs up in between. That's the
|
|
112
|
+
* API's own `LIMIT_EXCEEDED` error on the ScratchOrgInfo insert, passed through by @salesforce/core.
|
|
93
113
|
*/
|
|
94
114
|
function isScratchOrgLimitError(error, message) {
|
|
95
115
|
return (error.errorCode === 'LIMIT_EXCEEDED' ||
|
|
@@ -139,7 +159,7 @@ export async function createScratchOrg(options, devHubAliases) {
|
|
|
139
159
|
logger.error(`Scratch org creation failed with Dev Hub ${hub.alias}:`);
|
|
140
160
|
const errorMessage = extractScratchOrgErrorMessage(error);
|
|
141
161
|
if (isScratchOrgLimitError(error, errorMessage)) {
|
|
142
|
-
logger.warn(`Dev Hub ${hub.alias} reached
|
|
162
|
+
logger.warn(`Dev Hub ${hub.alias} reached a scratch org limit. Trying next Dev Hub...`);
|
|
143
163
|
continue;
|
|
144
164
|
}
|
|
145
165
|
throw new Error(`Scratch org creation failed with a non-recoverable error using Dev Hub ${hub.alias}.`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createScratchOrg.js","sourceRoot":"","sources":["../../src/build/createScratchOrg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAoB,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACL,2BAA2B,IAAI,uBAAuB,EACtD,oBAAoB,IAAI,6BAA6B,EACrD,qBAAqB,EAErB,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"createScratchOrg.js","sourceRoot":"","sources":["../../src/build/createScratchOrg.ts"],"names":[],"mappings":"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"}
|
package/lib/sfOrg.d.ts
CHANGED
|
@@ -6,10 +6,33 @@ import { type Connection } from '@salesforce/core';
|
|
|
6
6
|
* pass `''`) to use the default target org.
|
|
7
7
|
*/
|
|
8
8
|
export declare function getOrgInstanceUrl(aliasOrUsername?: string): Promise<string>;
|
|
9
|
+
/** One org limit as the REST `limits` resource reports it. */
|
|
10
|
+
export type OrgLimit = {
|
|
11
|
+
max: number;
|
|
12
|
+
remaining: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A Dev Hub's two scratch org limits. Each is `undefined` when the org doesn't report it (an org
|
|
16
|
+
* that isn't a Dev Hub reports neither).
|
|
17
|
+
*/
|
|
18
|
+
export type ScratchOrgCapacity = {
|
|
19
|
+
/** `DailyScratchOrgs`: signups left today, which a deleted scratch org does not give back. */
|
|
20
|
+
daily?: OrgLimit;
|
|
21
|
+
/** `ActiveScratchOrgs`: scratch orgs that can exist at once; deleting one frees a slot. */
|
|
22
|
+
active?: OrgLimit;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* The Dev Hub's daily and active scratch org limits, read in one `limits` call.
|
|
26
|
+
*
|
|
27
|
+
* @param hubAliasOrUsername - The Dev Hub. Must already be authenticated.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getScratchOrgCapacity(hubAliasOrUsername: string): Promise<ScratchOrgCapacity>;
|
|
9
30
|
/**
|
|
10
31
|
* How many more scratch orgs the Dev Hub may create today (its `DailyScratchOrgs` limit), or
|
|
11
32
|
* `undefined` when the org doesn't report that limit.
|
|
12
33
|
*
|
|
34
|
+
* @deprecated Use {@link getScratchOrgCapacity}, which also reports the `ActiveScratchOrgs` limit a
|
|
35
|
+
* signup needs room under.
|
|
13
36
|
* @param hubAliasOrUsername - The Dev Hub. Must already be authenticated.
|
|
14
37
|
*/
|
|
15
38
|
export declare function getRemainingDailyScratchOrgs(hubAliasOrUsername: string): Promise<number | undefined>;
|
package/lib/sfOrg.js
CHANGED
|
@@ -29,16 +29,29 @@ export async function getOrgInstanceUrl(aliasOrUsername) {
|
|
|
29
29
|
const org = await resolveOrg(aliasOrUsername);
|
|
30
30
|
return org.getConnection().instanceUrl;
|
|
31
31
|
}
|
|
32
|
+
function toOrgLimit(limit) {
|
|
33
|
+
return limit ? { max: limit.Max, remaining: limit.Remaining } : undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The Dev Hub's daily and active scratch org limits, read in one `limits` call.
|
|
37
|
+
*
|
|
38
|
+
* @param hubAliasOrUsername - The Dev Hub. Must already be authenticated.
|
|
39
|
+
*/
|
|
40
|
+
export async function getScratchOrgCapacity(hubAliasOrUsername) {
|
|
41
|
+
const org = await resolveOrg(hubAliasOrUsername, { isDevHub: true });
|
|
42
|
+
const limits = (await org.getConnection().limits());
|
|
43
|
+
return { daily: toOrgLimit(limits.DailyScratchOrgs), active: toOrgLimit(limits.ActiveScratchOrgs) };
|
|
44
|
+
}
|
|
32
45
|
/**
|
|
33
46
|
* How many more scratch orgs the Dev Hub may create today (its `DailyScratchOrgs` limit), or
|
|
34
47
|
* `undefined` when the org doesn't report that limit.
|
|
35
48
|
*
|
|
49
|
+
* @deprecated Use {@link getScratchOrgCapacity}, which also reports the `ActiveScratchOrgs` limit a
|
|
50
|
+
* signup needs room under.
|
|
36
51
|
* @param hubAliasOrUsername - The Dev Hub. Must already be authenticated.
|
|
37
52
|
*/
|
|
38
53
|
export async function getRemainingDailyScratchOrgs(hubAliasOrUsername) {
|
|
39
|
-
|
|
40
|
-
const limits = (await org.getConnection().limits());
|
|
41
|
-
return limits.DailyScratchOrgs?.Remaining;
|
|
54
|
+
return (await getScratchOrgCapacity(hubAliasOrUsername)).daily?.remaining;
|
|
42
55
|
}
|
|
43
56
|
/**
|
|
44
57
|
* A connection to an authenticated org.
|
package/lib/sfOrg.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sfOrg.js","sourceRoot":"","sources":["../src/sfOrg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAY,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAmB,MAAM,kBAAkB,CAAC;AACrH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,eAAwB;IAC9D,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC;AACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"sfOrg.js","sourceRoot":"","sources":["../src/sfOrg.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysf/simply-cicd-core",
|
|
3
3
|
"description": "The library layer behind @simplysf/simply-cicd: build/deploy/notify pipeline stages, sfdx-dependabot, ALM issue linking (Jira, GitLab Issues) and VCS API clients (GitHub, GitLab) — published separately for direct consumption (e.g. a bot or script) without the CLI framework",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.10.0",
|
|
5
5
|
"author": "@ClayChipps",
|
|
6
6
|
"homepage": "https://github.com/SimplySF/simply-plugins-core",
|
|
7
7
|
"bugs": "https://github.com/SimplySF/simply-plugins-core/issues",
|
|
@@ -142,5 +142,5 @@
|
|
|
142
142
|
"output": []
|
|
143
143
|
}
|
|
144
144
|
},
|
|
145
|
-
"gitHead": "
|
|
145
|
+
"gitHead": "3767326fb9448f67ba8224accc6c74c5d0ef04ee"
|
|
146
146
|
}
|