@payfit/nx-core 5.3.0-ephemeral-labels-executor.2 → 5.3.0-ephemeral-labels-executor.3
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.
|
@@ -8,6 +8,7 @@ const docker_1 = require("../../utils/docker");
|
|
|
8
8
|
const runExecutor = async (options, context) => {
|
|
9
9
|
const projectRoot = context.projectGraph.nodes[context.projectName].data.root;
|
|
10
10
|
const projectDockerfile = `${projectRoot}/Dockerfile`;
|
|
11
|
+
const isCI = process.env.CI === 'true';
|
|
11
12
|
if (!fs.existsSync(projectDockerfile)) {
|
|
12
13
|
logger_1.consola.warn(`Dockerfile not found at ${projectDockerfile}, skipping`);
|
|
13
14
|
return { success: true };
|
|
@@ -29,10 +30,12 @@ const runExecutor = async (options, context) => {
|
|
|
29
30
|
logger_1.consola.box(`Would have published docker image located at ${projectDockerfile} to registry ${options.ecrRepository} with tag ${tag} but --dry-run is enabled`);
|
|
30
31
|
return { success: true };
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
+
if (isCI) {
|
|
34
|
+
await (0, ecr_1.ensureEcrAuth)(registry.name, options.isPublicRepository);
|
|
35
|
+
}
|
|
33
36
|
// Build ephemeral sha tag (immutable)
|
|
34
|
-
logger_1.consola.box(
|
|
35
|
-
await (0, docker_1.buildAndPushDockerImage)(options.ecrRepository, projectDockerfile, tag, sanitizedRepoUrl, commitSha, registry.url, [], context.projectName, options.buildArgs);
|
|
37
|
+
logger_1.consola.box(`${isCI ? 'Building and pushing ephemeral' : 'Building locally'} image to ${isCI ? registry.url + '/' : ''}${options.ecrRepository}:${tag}`);
|
|
38
|
+
await (0, docker_1.buildAndPushDockerImage)(options.ecrRepository, projectDockerfile, tag, sanitizedRepoUrl, commitSha, registry.url, [], context.projectName, options.buildArgs, isCI);
|
|
36
39
|
return { success: true };
|
|
37
40
|
};
|
|
38
41
|
exports.default = runExecutor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/docker-build/executor.ts"],"names":[],"mappings":";;AAAA,8BAA6B;AAI7B,gDAI+B;AAC/B,sDAGkC;AAClC,sDAAmD;AACnD,+CAA4D;AAG5D,MAAM,WAAW,GAGyB,KAAK,EAC7C,OAAmC,EACnC,OAAwB,EACxB,EAAE;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAC7E,MAAM,iBAAiB,GAAG,GAAG,WAAW,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/docker-build/executor.ts"],"names":[],"mappings":";;AAAA,8BAA6B;AAI7B,gDAI+B;AAC/B,sDAGkC;AAClC,sDAAmD;AACnD,+CAA4D;AAG5D,MAAM,WAAW,GAGyB,KAAK,EAC7C,OAAmC,EACnC,OAAwB,EACxB,EAAE;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAC7E,MAAM,iBAAiB,GAAG,GAAG,WAAW,aAAa,CAAA;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAA;IAEtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACtC,gBAAO,CAAC,IAAI,CAAC,2BAA2B,iBAAiB,YAAY,CAAC,CAAA;QACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3B,gBAAO,CAAC,KAAK,CACX,qGAAqG,CACtG,CAAA;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAgB;QAC5B,GAAG,EAAE,OAAO,CAAC,kBAAkB;YAC7B,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,IAAA,uBAAiB,GAAE;QACvB,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAA,uBAAiB,GAAE;KAC1E,CAAA;IAED,MAAM,SAAS,GAAG,MAAM,IAAA,+BAAsB,GAAE,CAAA;IAChD,MAAM,gBAAgB,GAAG,MAAM,IAAA,sCAA6B,GAAE,CAAA;IAC9D,MAAM,GAAG,GAAG,iBAAiB,SAAS,EAAE,CAAA;IAExC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,gBAAO,CAAC,GAAG,CACT,gDAAgD,iBAAiB,gBAAgB,OAAO,CAAC,aAAa,aAAa,GAAG,2BAA2B,CAClJ,CAAA;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAA,mBAAa,EAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAChE,CAAC;IAED,sCAAsC;IACtC,gBAAO,CAAC,GAAG,CACT,GAAG,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,kBAAkB,aAAa,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,aAAa,IAAI,GAAG,EAAE,CAC5I,CAAA;IAED,MAAM,IAAA,gCAAuB,EAC3B,OAAO,CAAC,aAAa,EACrB,iBAAiB,EACjB,GAAG,EACH,gBAAgB,EAChB,SAAS,EACT,QAAQ,CAAC,GAAG,EACZ,EAAE,EACF,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,SAAS,EACjB,IAAI,CACL,CAAA;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC,CAAA;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -11,6 +11,7 @@ import { Result } from 'tinyexec';
|
|
|
11
11
|
* @param extraTags - Optional additional tags for the image
|
|
12
12
|
* @param appName
|
|
13
13
|
* @param buildArgs - Optional build arguments for the Docker build
|
|
14
|
+
* @param isCI - Are we running this in a CI context, enabling caching & pushing. Default to true as we only need it within the docker-build executor
|
|
14
15
|
* @return {Promise<Result>}
|
|
15
16
|
*/
|
|
16
|
-
export declare function buildAndPushDockerImage(imageName: string, dockerfilePath: string, version: string, gitRepoUrl: string, commitSha: string, registry: string, extraTags: string[], appName: string, buildArgs?: string): Promise<Result>;
|
|
17
|
+
export declare function buildAndPushDockerImage(imageName: string, dockerfilePath: string, version: string, gitRepoUrl: string, commitSha: string, registry: string, extraTags: string[], appName: string, buildArgs?: string, isCI?: boolean): Promise<Result>;
|
package/dist/src/utils/docker.js
CHANGED
|
@@ -45,19 +45,20 @@ async function setupDockerBuilder(appName) {
|
|
|
45
45
|
* @param extraTags - Optional additional tags for the image
|
|
46
46
|
* @param appName
|
|
47
47
|
* @param buildArgs - Optional build arguments for the Docker build
|
|
48
|
+
* @param isCI - Are we running this in a CI context, enabling caching & pushing. Default to true as we only need it within the docker-build executor
|
|
48
49
|
* @return {Promise<Result>}
|
|
49
50
|
*/
|
|
50
|
-
async function buildAndPushDockerImage(imageName, dockerfilePath, version, gitRepoUrl, commitSha, registry, extraTags = [], appName, buildArgs = undefined) {
|
|
51
|
+
async function buildAndPushDockerImage(imageName, dockerfilePath, version, gitRepoUrl, commitSha, registry, extraTags = [], appName, buildArgs = undefined, isCI = true) {
|
|
51
52
|
appName = appName.replaceAll('@', '-').replaceAll('/', '-');
|
|
52
53
|
const buildContextName = await setupDockerBuilder(appName);
|
|
53
54
|
// Build all tags including base version and extra tags
|
|
54
55
|
const tagArgs = [`${version}`, ...extraTags]
|
|
55
|
-
.map(tag => `-t ${registry}/${imageName}:${tag}`)
|
|
56
|
+
.map(tag => isCI ? `-t ${registry}/${imageName}:${tag}` : `-t ${imageName}:${tag}`)
|
|
56
57
|
.join(' ');
|
|
57
58
|
// Setup registry cache (skip for public ECR which doesn't support BuildKit cache backend)
|
|
58
59
|
const isPublicEcr = registry.includes('public.ecr.aws');
|
|
59
60
|
const cacheArgParts = [];
|
|
60
|
-
if (!isPublicEcr) {
|
|
61
|
+
if (!isPublicEcr && isCI) {
|
|
61
62
|
const branch = await (0, github_1.getSanitizedCurrentGitBranch)();
|
|
62
63
|
const branchCacheRef = `${registry}/${imageName}:cache-build-${branch}`;
|
|
63
64
|
const mainCacheRef = `${registry}/${imageName}:cache-build-main`;
|
|
@@ -84,7 +85,7 @@ async function buildAndPushDockerImage(imageName, dockerfilePath, version, gitRe
|
|
|
84
85
|
`--builder ${buildContextName}`,
|
|
85
86
|
`-f ${dockerfilePath}`,
|
|
86
87
|
`--secret id=NPM_TOKEN`,
|
|
87
|
-
|
|
88
|
+
`${isCI ? '--push' : '--load'}`,
|
|
88
89
|
`--provenance=false`,
|
|
89
90
|
...cacheArgParts,
|
|
90
91
|
`--annotation org.opencontainers.image.source=${gitRepoUrl}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../src/utils/docker.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../../src/utils/docker.ts"],"names":[],"mappings":"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"}
|