@shopify/oxygen-cli 4.4.2-test.202404111817.0 → 4.4.2-test.202404112049.0
Sign up to get free protection for your applications and to get access to all the features.
package/dist/deploy/index.js
CHANGED
@@ -34,7 +34,6 @@ async function createDeploy(options) {
|
|
34
34
|
const metadata = await getMetadata(config, logger);
|
35
35
|
const labels = createLabels(metadata);
|
36
36
|
const environment = getEnvironmentInput(config, metadata);
|
37
|
-
console.log({ metadata, labels, environment });
|
38
37
|
Bugsnag?.addMetadata("metadata", {
|
39
38
|
environment,
|
40
39
|
labels,
|
package/dist/deploy/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/deploy/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Logger,\n outputInfo,\n outputSuccess,\n outputWarn,\n} from '@shopify/cli-kit/node/output';\n\nimport {stderrLogger, verifyConfig} from '../utils/utils.js';\nimport {getBugsnag, initializeBugsnag} from '../utils/bugsnag.js';\nimport {MetricsExporter, MetricName} from '../utils/metrics-exporter.js';\n\nimport {buildInitiate} from './build-initiate.js';\nimport {buildCancel} from './build-cancel.js';\nimport {getUploadFiles} from './get-upload-files.js';\nimport {deploymentInitiate} from './deployment-initiate.js';\nimport {deploymentComplete} from './deployment-complete.js';\nimport {verifyDeployment} from './verify-deployment.js';\nimport {deploymentCancel} from './deployment-cancel.js';\nimport {uploadFiles} from './upload-files.js';\nimport {verifyDeploymentCompleted} from './verify-deployment-completed.js';\nimport {\n Build,\n DeploymentCompletedVerificationError,\n DeploymentConfig,\n DeploymentHooks,\n VerificationError,\n} from './types.js';\nimport {buildProject} from './build-project.js';\nimport {createLabels, getMetadata, getEnvironmentInput} from './metadata.js';\n\ninterface CreateDeployOptions {\n config: DeploymentConfig;\n hooks?: DeploymentHooks;\n logger?: Logger;\n}\n\ninterface CompletedDeployment {\n url: string;\n authBypassToken?: string;\n}\n\nexport async function createDeploy(\n options: CreateDeployOptions,\n): Promise<CompletedDeployment | undefined> {\n const cliStartTime = performance.now();\n initializeBugsnag(!options.config.bugsnag);\n const Bugsnag = getBugsnag();\n Bugsnag?.addMetadata('config', {\n ...options.config,\n deploymentToken: {...options.config.deploymentToken, accessToken: '***'},\n });\n\n const {config, hooks} = options;\n const logger = options.logger ?? stderrLogger;\n const build = {} as Build;\n let buildCompleted;\n let deployment;\n let metricsExporter;\n\n try {\n const metadata = await getMetadata(config, logger);\n const labels = createLabels(metadata);\n const environment = getEnvironmentInput(config, metadata);\n // eslint-disable-next-line no-console\n console.log({metadata, labels, environment});\n Bugsnag?.addMetadata('metadata', {\n environment,\n labels,\n metadata,\n });\n metricsExporter = new MetricsExporter({\n ciProvider: metadata.name || 'unknown',\n rootPath: config.rootPath!,\n });\n\n if (!config.workerOnly && !config.skipBuild) {\n const buildInitiateResponse = await buildInitiate({\n config,\n environment,\n labels,\n logger,\n });\n build.id = buildInitiateResponse.build.id;\n build.assetPath = buildInitiateResponse.build.assetPath;\n }\n\n if (!config.skipBuild) {\n await buildProject({\n config,\n assetPath: build.assetPath,\n hooks,\n metricsExporter,\n });\n await verifyConfig({config, performedBuild: true});\n }\n buildCompleted = true;\n\n const manifest = await getUploadFiles(config, metricsExporter);\n Bugsnag?.addMetadata('manifest', manifest);\n const deploymentInitiateInput = build.id\n ? {buildId: build.id, manifest}\n : {environment, manifest, labels};\n\n deployment = await deploymentInitiate({\n config,\n input: deploymentInitiateInput,\n logger,\n });\n\n await uploadFiles({\n config,\n targets: deployment.deploymentTargets,\n hooks,\n logger,\n metricsExporter,\n });\n\n const deploymentCompleteRequestStartTime = performance.now();\n\n const deploymentCompleteOp = await deploymentComplete(\n config,\n deployment.deployment.id,\n );\n metricsExporter.add(MetricName.TotalTime, performance.now() - cliStartTime);\n\n await verifyDeploymentCompleted(\n {\n config,\n hooks,\n logger,\n timeoutInSeconds: deployment.deploymentConfiguration.timeoutInSeconds,\n },\n deployment.deployment.id,\n );\n\n metricsExporter.add(\n MetricName.DeploymentCompletedTime,\n performance.now() - deploymentCompleteRequestStartTime,\n );\n\n if (!config.skipVerification) {\n await verifyDeployment({\n config,\n url: deploymentCompleteOp.deployment.url,\n logger,\n hooks,\n });\n\n metricsExporter.add(\n MetricName.DeploymentRoutableTime,\n performance.now() - deploymentCompleteRequestStartTime,\n );\n }\n\n const completedDeployment: CompletedDeployment = {\n url: deploymentCompleteOp.deployment.url,\n };\n\n let successMessage = `\\nThe deployment can be reached at the ${completedDeployment.url} preview URL`;\n\n if (deploymentCompleteOp.authBypassToken) {\n completedDeployment.authBypassToken =\n deploymentCompleteOp.authBypassToken;\n\n successMessage += `. The auth bypass token for the deployment is ${completedDeployment.authBypassToken}`;\n }\n\n outputSuccess(successMessage, logger);\n\n return completedDeployment;\n } catch (error) {\n if (\n config.bugsnag &&\n Bugsnag &&\n (error instanceof Error || typeof error === 'string')\n ) {\n Bugsnag.notify(error);\n }\n\n if (!(error instanceof Error)) {\n // eslint-disable-next-line no-console\n console.error('Unknown error', error);\n return Promise.reject(new Error('Unknown error'));\n }\n\n if (\n error instanceof VerificationError ||\n error instanceof DeploymentCompletedVerificationError\n ) {\n outputWarn(error.message, logger);\n } else if (build.id && !buildCompleted) {\n outputWarn(\n `Build failed with: ${error.message}, cancelling build.`,\n logger,\n );\n\n await buildCancel({\n config,\n buildId: build.id!,\n reason: error.message,\n logger,\n }).catch((err) => {\n if (err instanceof Error) {\n outputWarn(`Failed to cancel build: ${err.message}`, logger);\n }\n });\n } else if (deployment?.deployment.id) {\n outputWarn(\n `Deployment failed with: ${error.message}, cancelling deployment.`,\n logger,\n );\n await deploymentCancel({\n config,\n deploymentId: deployment.deployment.id,\n reason: error.message,\n logger,\n }).catch((err) => {\n if (err instanceof Error) {\n outputWarn(`Failed to cancel deployment: ${err.message}`, logger);\n }\n });\n }\n return Promise.reject(error);\n } finally {\n metricsExporter?.export();\n }\n}\n\nexport type {DeploymentConfig, DeploymentHooks, CompletedDeployment};\nexport {parseToken} from '../utils/utils.js';\nexport type {DeploymentVerificationDetailsResponse} from './graphql/deployment-verification-details.js';\n"]}
|
1
|
+
{"version":3,"sources":["../../src/deploy/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Logger,\n outputInfo,\n outputSuccess,\n outputWarn,\n} from '@shopify/cli-kit/node/output';\n\nimport {stderrLogger, verifyConfig} from '../utils/utils.js';\nimport {getBugsnag, initializeBugsnag} from '../utils/bugsnag.js';\nimport {MetricsExporter, MetricName} from '../utils/metrics-exporter.js';\n\nimport {buildInitiate} from './build-initiate.js';\nimport {buildCancel} from './build-cancel.js';\nimport {getUploadFiles} from './get-upload-files.js';\nimport {deploymentInitiate} from './deployment-initiate.js';\nimport {deploymentComplete} from './deployment-complete.js';\nimport {verifyDeployment} from './verify-deployment.js';\nimport {deploymentCancel} from './deployment-cancel.js';\nimport {uploadFiles} from './upload-files.js';\nimport {verifyDeploymentCompleted} from './verify-deployment-completed.js';\nimport {\n Build,\n DeploymentCompletedVerificationError,\n DeploymentConfig,\n DeploymentHooks,\n VerificationError,\n} from './types.js';\nimport {buildProject} from './build-project.js';\nimport {createLabels, getMetadata, getEnvironmentInput} from './metadata.js';\n\ninterface CreateDeployOptions {\n config: DeploymentConfig;\n hooks?: DeploymentHooks;\n logger?: Logger;\n}\n\ninterface CompletedDeployment {\n url: string;\n authBypassToken?: string;\n}\n\nexport async function createDeploy(\n options: CreateDeployOptions,\n): Promise<CompletedDeployment | undefined> {\n const cliStartTime = performance.now();\n initializeBugsnag(!options.config.bugsnag);\n const Bugsnag = getBugsnag();\n Bugsnag?.addMetadata('config', {\n ...options.config,\n deploymentToken: {...options.config.deploymentToken, accessToken: '***'},\n });\n\n const {config, hooks} = options;\n const logger = options.logger ?? stderrLogger;\n const build = {} as Build;\n let buildCompleted;\n let deployment;\n let metricsExporter;\n\n try {\n const metadata = await getMetadata(config, logger);\n const labels = createLabels(metadata);\n const environment = getEnvironmentInput(config, metadata);\n Bugsnag?.addMetadata('metadata', {\n environment,\n labels,\n metadata,\n });\n metricsExporter = new MetricsExporter({\n ciProvider: metadata.name || 'unknown',\n rootPath: config.rootPath!,\n });\n\n if (!config.workerOnly && !config.skipBuild) {\n const buildInitiateResponse = await buildInitiate({\n config,\n environment,\n labels,\n logger,\n });\n build.id = buildInitiateResponse.build.id;\n build.assetPath = buildInitiateResponse.build.assetPath;\n }\n\n if (!config.skipBuild) {\n await buildProject({\n config,\n assetPath: build.assetPath,\n hooks,\n metricsExporter,\n });\n await verifyConfig({config, performedBuild: true});\n }\n buildCompleted = true;\n\n const manifest = await getUploadFiles(config, metricsExporter);\n Bugsnag?.addMetadata('manifest', manifest);\n const deploymentInitiateInput = build.id\n ? {buildId: build.id, manifest}\n : {environment, manifest, labels};\n\n deployment = await deploymentInitiate({\n config,\n input: deploymentInitiateInput,\n logger,\n });\n\n await uploadFiles({\n config,\n targets: deployment.deploymentTargets,\n hooks,\n logger,\n metricsExporter,\n });\n\n const deploymentCompleteRequestStartTime = performance.now();\n\n const deploymentCompleteOp = await deploymentComplete(\n config,\n deployment.deployment.id,\n );\n metricsExporter.add(MetricName.TotalTime, performance.now() - cliStartTime);\n\n await verifyDeploymentCompleted(\n {\n config,\n hooks,\n logger,\n timeoutInSeconds: deployment.deploymentConfiguration.timeoutInSeconds,\n },\n deployment.deployment.id,\n );\n\n metricsExporter.add(\n MetricName.DeploymentCompletedTime,\n performance.now() - deploymentCompleteRequestStartTime,\n );\n\n if (!config.skipVerification) {\n await verifyDeployment({\n config,\n url: deploymentCompleteOp.deployment.url,\n logger,\n hooks,\n });\n\n metricsExporter.add(\n MetricName.DeploymentRoutableTime,\n performance.now() - deploymentCompleteRequestStartTime,\n );\n }\n\n const completedDeployment: CompletedDeployment = {\n url: deploymentCompleteOp.deployment.url,\n };\n\n let successMessage = `\\nThe deployment can be reached at the ${completedDeployment.url} preview URL`;\n\n if (deploymentCompleteOp.authBypassToken) {\n completedDeployment.authBypassToken =\n deploymentCompleteOp.authBypassToken;\n\n successMessage += `. The auth bypass token for the deployment is ${completedDeployment.authBypassToken}`;\n }\n\n outputSuccess(successMessage, logger);\n\n return completedDeployment;\n } catch (error) {\n if (\n config.bugsnag &&\n Bugsnag &&\n (error instanceof Error || typeof error === 'string')\n ) {\n Bugsnag.notify(error);\n }\n\n if (!(error instanceof Error)) {\n // eslint-disable-next-line no-console\n console.error('Unknown error', error);\n return Promise.reject(new Error('Unknown error'));\n }\n\n if (\n error instanceof VerificationError ||\n error instanceof DeploymentCompletedVerificationError\n ) {\n outputWarn(error.message, logger);\n } else if (build.id && !buildCompleted) {\n outputWarn(\n `Build failed with: ${error.message}, cancelling build.`,\n logger,\n );\n\n await buildCancel({\n config,\n buildId: build.id!,\n reason: error.message,\n logger,\n }).catch((err) => {\n if (err instanceof Error) {\n outputWarn(`Failed to cancel build: ${err.message}`, logger);\n }\n });\n } else if (deployment?.deployment.id) {\n outputWarn(\n `Deployment failed with: ${error.message}, cancelling deployment.`,\n logger,\n );\n await deploymentCancel({\n config,\n deploymentId: deployment.deployment.id,\n reason: error.message,\n logger,\n }).catch((err) => {\n if (err instanceof Error) {\n outputWarn(`Failed to cancel deployment: ${err.message}`, logger);\n }\n });\n }\n return Promise.reject(error);\n } finally {\n metricsExporter?.export();\n }\n}\n\nexport type {DeploymentConfig, DeploymentHooks, CompletedDeployment};\nexport {parseToken} from '../utils/utils.js';\nexport type {DeploymentVerificationDetailsResponse} from './graphql/deployment-verification-details.js';\n"]}
|
package/dist/deploy/metadata.js
CHANGED
@@ -5,34 +5,24 @@ import { maxLabelLength } from '../utils/utils.js';
|
|
5
5
|
|
6
6
|
async function getMetadata(config, logger) {
|
7
7
|
const ciInfo = ciPlatform();
|
8
|
-
|
9
|
-
console.log("Before the try/catch block", { metadata });
|
8
|
+
const metadata = ciInfo.metadata ?? {};
|
10
9
|
try {
|
11
10
|
const gitCommit = await latestCommit(config.rootPath);
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
commitDate
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
11
|
+
if (!metadata.actor) {
|
12
|
+
metadata.actor = gitCommit.author_name;
|
13
|
+
}
|
14
|
+
if (!metadata.commitDate) {
|
15
|
+
metadata.commitDate = gitCommit.date;
|
16
|
+
}
|
17
|
+
metadata.branch = gitCommit.branch;
|
18
|
+
metadata.commitMessage = createCommitTitle(gitCommit.message);
|
19
|
+
metadata.commitSha = gitCommit.hash;
|
21
20
|
} catch (error) {
|
22
|
-
console.log({ error });
|
23
21
|
outputWarn(
|
24
22
|
"Could not retrieve Git history, commit message will be unavailable.",
|
25
23
|
logger
|
26
24
|
);
|
27
25
|
}
|
28
|
-
console.log("After the try/catch block", { metadata });
|
29
|
-
if (ciInfo.isCI && ciInfo.name !== "unknown") {
|
30
|
-
metadata = {
|
31
|
-
...metadata,
|
32
|
-
...ciInfo.metadata
|
33
|
-
};
|
34
|
-
}
|
35
|
-
console.log("After the CI check", { metadata, ciInfo });
|
36
26
|
return {
|
37
27
|
name: ciInfo.isCI ? ciInfo.name : "none",
|
38
28
|
...metadata,
|
@@ -46,7 +36,6 @@ async function latestCommit(path) {
|
|
46
36
|
const gitCommit = await getLatestGitCommit(path);
|
47
37
|
const branch = (/HEAD -> ([^,]*)/.exec(gitCommit.refs) || [])[1];
|
48
38
|
const headRef = process.env.GITHUB_HEAD_REF;
|
49
|
-
console.log({ headRef });
|
50
39
|
if (!headRef) {
|
51
40
|
return {
|
52
41
|
...gitCommit,
|
@@ -54,7 +43,6 @@ async function latestCommit(path) {
|
|
54
43
|
};
|
55
44
|
}
|
56
45
|
const match = /Merge ([\w\d]+) into [\w\d]+/.exec(gitCommit.message);
|
57
|
-
console.log({ match, gitCommit });
|
58
46
|
return {
|
59
47
|
...gitCommit,
|
60
48
|
branch: headRef,
|
@@ -84,7 +72,6 @@ function getEnvironmentInput(config, metadata) {
|
|
84
72
|
return tag ? { tag } : void 0;
|
85
73
|
}
|
86
74
|
function createLabels(metadata) {
|
87
|
-
console.log("Creating labels with:", { metadata });
|
88
75
|
const labels = [];
|
89
76
|
const checkLabel = (labelKey, labelValue) => {
|
90
77
|
const jsonString = JSON.stringify(labelValue);
|
@@ -127,7 +114,6 @@ function createLabels(metadata) {
|
|
127
114
|
checkLabel(value, metadata[metadataKey]);
|
128
115
|
}
|
129
116
|
}
|
130
|
-
console.log({ labels });
|
131
117
|
return labels;
|
132
118
|
}
|
133
119
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/deploy/metadata.ts"],"names":["keyMapping"],"mappings":"AAAA,SAAQ,kBAA6B;AACrC,SAAQ,0BAAyB;AACjC,SAAgB,kBAAiB;AAEjC,SAAQ,sBAAqB;AAS7B,eAAsB,YACpB,QACA,QACmB;AACnB,QAAM,SAAS,WAAW;AAC1B,
|
1
|
+
{"version":3,"sources":["../../src/deploy/metadata.ts"],"names":["keyMapping"],"mappings":"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","sourcesContent":["import {ciPlatform, CIMetadata} from '@shopify/cli-kit/node/context/local';\nimport {getLatestGitCommit} from '@shopify/cli-kit/node/git';\nimport {Logger, outputWarn} from '@shopify/cli-kit/node/output';\n\nimport {maxLabelLength} from '../utils/utils.js';\n\nimport {DeploymentConfig, EnvironmentInput} from './types.js';\n\ntype Metadata = CIMetadata & {\n commitDate?: string;\n name?: string;\n};\n\nexport async function getMetadata(\n config: DeploymentConfig,\n logger: Logger,\n): Promise<Metadata> {\n const ciInfo = ciPlatform();\n const metadata: Metadata = ciInfo.metadata ?? {};\n\n try {\n const gitCommit = await latestCommit(config.rootPath);\n\n // Conditionally update metadata with Git information if it's unavailable\n // from CI.\n if (!metadata.actor) {\n metadata.actor = gitCommit.author_name;\n }\n\n if (!metadata.commitDate) {\n metadata.commitDate = gitCommit.date;\n }\n\n // Always update the following keys with the Git information if it's\n // available.\n metadata.branch = gitCommit.branch;\n metadata.commitMessage = createCommitTitle(gitCommit.message);\n metadata.commitSha = gitCommit.hash;\n } catch (error) {\n outputWarn(\n 'Could not retrieve Git history, commit message will be unavailable.',\n logger,\n );\n }\n\n return {\n name: ciInfo.isCI ? ciInfo.name : 'none',\n ...metadata,\n actor: config.metadata.user ?? metadata.actor,\n commitMessage: config.metadata.description ?? metadata.commitMessage,\n commitSha: config.metadata.version ?? metadata.commitSha,\n url: config.metadata.url ?? metadata.url,\n };\n}\n\nasync function latestCommit(path?: string) {\n const gitCommit = await getLatestGitCommit(path);\n const branch = (/HEAD -> ([^,]*)/.exec(gitCommit.refs) || [])[1];\n\n // If this variable is set it means we are in a GitHub action using the\n // pull_request trigger which creates a merge commit and we'll need to\n // manually extract the commit details.\n // eslint-disable-next-line no-process-env\n const headRef = process.env.GITHUB_HEAD_REF;\n\n if (!headRef) {\n return {\n ...gitCommit,\n branch,\n };\n }\n\n const match = /Merge ([\\w\\d]+) into [\\w\\d]+/.exec(gitCommit.message);\n\n return {\n ...gitCommit,\n branch: headRef,\n hash: match ? match[1] : gitCommit.hash,\n };\n}\n\nfunction createCommitTitle(commitMessage: string): string {\n let title = commitMessage.split(/\\r?\\n/)[0]?.trim() || '';\n let jsonTitle = JSON.stringify(title);\n let isTruncated = false;\n\n while (jsonTitle.length > maxLabelLength) {\n const lastSpaceIndex = title.lastIndexOf(' ', maxLabelLength - 3);\n title = `${title.substring(\n 0,\n lastSpaceIndex > -1 ? lastSpaceIndex : maxLabelLength - 3,\n )}`.trimEnd();\n isTruncated = true;\n jsonTitle = JSON.stringify(title);\n }\n\n return isTruncated ? `${title}...` : title;\n}\n\nexport function getEnvironmentInput(\n config: DeploymentConfig,\n metadata: CIMetadata,\n): EnvironmentInput | undefined {\n if (config.defaultEnvironment) {\n return undefined;\n }\n\n const tag = config.environmentTag || metadata.branch;\n return tag ? {tag} : undefined;\n}\n\nexport function createLabels(metadata: Metadata): string[] {\n const labels: string[] = [];\n\n const checkLabel = (labelKey: string, labelValue: string) => {\n const jsonString = JSON.stringify(labelValue);\n if (jsonString.length > maxLabelLength) {\n throw new Error(\n `Provided ${labelKey} metadata exceeds maximum length (max ${maxLabelLength} characters).`,\n );\n }\n const label = `${labelKey}=${jsonString}`;\n labels.push(label);\n };\n\n if (metadata.name !== 'none') {\n labels.push(`ci-platform=${JSON.stringify(metadata.name)}`);\n }\n\n if (metadata.name !== 'unknown') {\n const keyMapping = {\n attempt: 'attempt',\n run: 'runId',\n };\n\n for (const [key, value] of Object.entries(keyMapping)) {\n const metadataKey = key as keyof Metadata;\n if (metadata[metadataKey]) {\n labels.push(\n `${metadata.name}-${value}=${JSON.stringify(metadata[metadataKey])}`,\n );\n }\n }\n }\n\n const keyMapping = {\n actor: 'user',\n branch: 'branch',\n commitDate: 'commit-date',\n commitMessage: 'description',\n commitSha: 'version',\n url: 'url',\n };\n\n for (const [key, value] of Object.entries(keyMapping)) {\n const metadataKey = key as keyof Metadata;\n if (metadata[metadataKey]) {\n checkLabel(value, metadata[metadataKey]!);\n }\n }\n\n return labels;\n}\n"]}
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
"@shopify:registry": "https://registry.npmjs.org"
|
6
6
|
},
|
7
7
|
"license": "MIT",
|
8
|
-
"version": "4.4.2-test.
|
8
|
+
"version": "4.4.2-test.202404112049.0",
|
9
9
|
"type": "module",
|
10
10
|
"scripts": {
|
11
11
|
"build": "tsup --sourcemap --clean --config ./tsup.config.ts && oclif manifest",
|