@decohere/forge 0.0.1-dev.19 → 0.0.1-dev.21
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/commonjs/src/actions/docker.action.js +162 -0
- package/commonjs/src/actions/index.js +2 -1
- package/commonjs/src/commands/docker.command.js +28 -0
- package/commonjs/src/commands/index.js +2 -1
- package/commonjs/src/forge.module.js +3 -1
- package/es6/src/actions/docker.action.js +148 -0
- package/es6/src/actions/index.js +2 -1
- package/es6/src/commands/docker.command.js +18 -0
- package/es6/src/commands/index.js +2 -1
- package/es6/src/forge.module.js +3 -1
- package/package.json +5 -5
- package/types/src/actions/docker.action.d.ts +27 -0
- package/types/src/actions/index.d.ts +1 -0
- package/types/src/commands/docker.command.d.ts +6 -0
- package/types/src/commands/index.d.ts +1 -0
- package/types/src/forge.module.d.ts +2 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "Docker", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return Docker;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
12
|
+
const _decorators = require("@decohere/crucible/decorators");
|
|
13
|
+
const _mesh = require("@decohere/mesh");
|
|
14
|
+
const _cli = require("@decohere/nexus/cli");
|
|
15
|
+
const _interop = require("@decohere/nexus/interop");
|
|
16
|
+
const _io = require("@decohere/nexus/io");
|
|
17
|
+
const _scribe = require("@decohere/scribe");
|
|
18
|
+
const _errors = require("../errors.js");
|
|
19
|
+
function _interop_require_default(obj) {
|
|
20
|
+
return obj && obj.__esModule ? obj : {
|
|
21
|
+
default: obj
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
25
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
26
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
27
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
28
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
29
|
+
}
|
|
30
|
+
function _ts_metadata(k, v) {
|
|
31
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
32
|
+
}
|
|
33
|
+
class Docker {
|
|
34
|
+
workspace;
|
|
35
|
+
#logger = _scribe.scribe.logger(Docker.name);
|
|
36
|
+
docker = new _interop.Docker();
|
|
37
|
+
#defaultRegistry = process.env.FORGE_DOCKER_REGISTRY?.trim() || "ghcr.io";
|
|
38
|
+
constructor(workspace){
|
|
39
|
+
this.workspace = workspace;
|
|
40
|
+
}
|
|
41
|
+
async run(options) {
|
|
42
|
+
const projects = await this.getDockerProjects(this.workspace.getProjects(options.configuration));
|
|
43
|
+
if (projects.length === 0) {
|
|
44
|
+
throw new _errors.ForgeError(`No projects found with a Dockerfile`);
|
|
45
|
+
}
|
|
46
|
+
const version = await this.workspace.getVersion();
|
|
47
|
+
const responses = await Promise.all(projects.map(async (project)=>await this.buildProject(project, version, options)));
|
|
48
|
+
const failed = responses.filter((response)=>!response.succeeded);
|
|
49
|
+
if (failed.length > 0) {
|
|
50
|
+
return _cli.ActionResponse.Error(Docker.name, responses);
|
|
51
|
+
}
|
|
52
|
+
return _cli.ActionResponse.Success(Docker.name, responses);
|
|
53
|
+
}
|
|
54
|
+
async getDockerProjects(projects) {
|
|
55
|
+
const result = [];
|
|
56
|
+
for (const project of projects){
|
|
57
|
+
const dockerfile = project.dockerConfig?.dockerfile ?? "Dockerfile";
|
|
58
|
+
const dockerfilePath = _nodepath.default.join(project.projectRoot, dockerfile);
|
|
59
|
+
if (!await _io.io.fileExists(dockerfilePath)) {
|
|
60
|
+
this.#logger.info(`Skipping ${project.name}: missing ${dockerfile}`);
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
result.push(project);
|
|
64
|
+
}
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
async buildProject(project, version, options) {
|
|
68
|
+
const dockerConfig = project.dockerConfig ?? {};
|
|
69
|
+
const envBuildArgs = this.parseJsonEnv("FORGE_DOCKER_BUILD_ARGS_JSON", {});
|
|
70
|
+
const envSecrets = this.parseJsonEnv("FORGE_DOCKER_SECRETS_JSON", {});
|
|
71
|
+
const envTags = this.parseJsonEnv("FORGE_DOCKER_EXTRA_TAGS_JSON", []);
|
|
72
|
+
const image = dockerConfig.image ?? this.defaultImageName(project.name);
|
|
73
|
+
const dockerfile = dockerConfig.dockerfile ?? "Dockerfile";
|
|
74
|
+
const tags = [
|
|
75
|
+
`${image}:${version}`,
|
|
76
|
+
...dockerConfig.tags ?? [],
|
|
77
|
+
...envTags
|
|
78
|
+
];
|
|
79
|
+
const buildArgs = this.interpolateBuildArgs({
|
|
80
|
+
...dockerConfig.buildArgs ?? {},
|
|
81
|
+
...envBuildArgs
|
|
82
|
+
}, version);
|
|
83
|
+
const secrets = {
|
|
84
|
+
...dockerConfig.secrets ?? {},
|
|
85
|
+
...envSecrets
|
|
86
|
+
};
|
|
87
|
+
this.#logger.info(`${options.dryRun ? "[dry-run] " : ""}Building ${project.name}`);
|
|
88
|
+
try {
|
|
89
|
+
if (!options.dryRun) {
|
|
90
|
+
await this.docker.build(project.projectRoot, {
|
|
91
|
+
cwd: project.projectRoot,
|
|
92
|
+
dockerfile: _nodepath.default.join(project.projectRoot, dockerfile),
|
|
93
|
+
tags,
|
|
94
|
+
buildArgs,
|
|
95
|
+
secrets
|
|
96
|
+
});
|
|
97
|
+
if (options.push || dockerConfig.push) {
|
|
98
|
+
for (const tag of tags){
|
|
99
|
+
await this.docker.push(tag, {
|
|
100
|
+
cwd: project.projectRoot
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
projectName: project.name,
|
|
107
|
+
image,
|
|
108
|
+
tags,
|
|
109
|
+
succeeded: true,
|
|
110
|
+
message: options.dryRun ? "Dry run" : `Built ${image}`
|
|
111
|
+
};
|
|
112
|
+
} catch (reason) {
|
|
113
|
+
const message = (0, _errors.formatUnknownError)(reason);
|
|
114
|
+
return {
|
|
115
|
+
projectName: project.name,
|
|
116
|
+
image,
|
|
117
|
+
tags,
|
|
118
|
+
succeeded: false,
|
|
119
|
+
message,
|
|
120
|
+
error: `${project.name}: ${message}`
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
interpolateBuildArgs(buildArgs, version) {
|
|
125
|
+
const result = {};
|
|
126
|
+
const versionPlaceholder = "$" + "{version}";
|
|
127
|
+
for (const [key, value] of Object.entries(buildArgs ?? {})){
|
|
128
|
+
result[key] = value.split(versionPlaceholder).join(version);
|
|
129
|
+
}
|
|
130
|
+
return result;
|
|
131
|
+
}
|
|
132
|
+
defaultImageName(projectName) {
|
|
133
|
+
return `${this.#defaultRegistry}/${this.normalizeDockerRepository(projectName)}`;
|
|
134
|
+
}
|
|
135
|
+
normalizeDockerRepository(name) {
|
|
136
|
+
const repository = name.replace(/^@/, "").split("/").map((segment)=>segment.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "")).filter(Boolean).join("/");
|
|
137
|
+
if (repository === "") {
|
|
138
|
+
throw new _errors.ForgeError(`Could not derive a Docker repository from project name "${name}"`);
|
|
139
|
+
}
|
|
140
|
+
return repository;
|
|
141
|
+
}
|
|
142
|
+
parseJsonEnv(name, fallback) {
|
|
143
|
+
const value = process.env[name];
|
|
144
|
+
if (value == null || value.trim() === "") {
|
|
145
|
+
return fallback;
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
return JSON.parse(value);
|
|
149
|
+
} catch (reason) {
|
|
150
|
+
throw new _errors.ForgeError(`Invalid JSON in ${name}: ${(0, _errors.formatUnknownError)(reason)}`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
Docker = _ts_decorate([
|
|
155
|
+
(0, _decorators.injectable)(),
|
|
156
|
+
_ts_metadata("design:type", Function),
|
|
157
|
+
_ts_metadata("design:paramtypes", [
|
|
158
|
+
typeof _mesh.Workspace === "undefined" ? Object : _mesh.Workspace
|
|
159
|
+
])
|
|
160
|
+
], Docker);
|
|
161
|
+
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9hY3Rpb25zL2RvY2tlci5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdHlsZS91c2VJbXBvcnRUeXBlOiA8REk+XG5pbXBvcnQgeyBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgQWN0aW9uLCBSZXN1bHRTdGF0dXMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgQWN0aW9uUmVzcG9uc2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgRG9ja2VyIGFzIERvY2tlckludGVyb3AgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2ludGVyb3BcIjtcbmltcG9ydCB7IGlvIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHsgc2NyaWJlIH0gZnJvbSBcIkBkZWNvaGVyZS9zY3JpYmVcIjtcbmltcG9ydCB7IEZvcmdlRXJyb3IsIGZvcm1hdFVua25vd25FcnJvciB9IGZyb20gXCIuLi9lcnJvcnMuanNcIjtcblxuZXhwb3J0IHR5cGUgRG9ja2VyT3B0aW9ucyA9IHtcblx0Y29uZmlndXJhdGlvbjogc3RyaW5nO1xuXHRkcnlSdW4/OiBib29sZWFuO1xuXHRwdXNoPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIERvY2tlclJlc3BvbnNlID0gUmVzdWx0U3RhdHVzICYge1xuXHRwcm9qZWN0TmFtZTogc3RyaW5nO1xuXHRpbWFnZTogc3RyaW5nO1xuXHR0YWdzOiBzdHJpbmdbXTtcblx0bWVzc2FnZTogc3RyaW5nO1xufTtcblxuQGluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERvY2tlciBpbXBsZW1lbnRzIEFjdGlvbjxEb2NrZXJPcHRpb25zPiB7XG5cdCNsb2dnZXIgPSBzY3JpYmUubG9nZ2VyKERvY2tlci5uYW1lKTtcblx0cHJpdmF0ZSByZWFkb25seSBkb2NrZXIgPSBuZXcgRG9ja2VySW50ZXJvcCgpO1xuXHRyZWFkb25seSAjZGVmYXVsdFJlZ2lzdHJ5ID0gcHJvY2Vzcy5lbnYuRk9SR0VfRE9DS0VSX1JFR0lTVFJZPy50cmltKCkgfHwgXCJnaGNyLmlvXCI7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgd29ya3NwYWNlOiBXb3Jrc3BhY2UpIHt9XG5cblx0cHVibGljIGFzeW5jIHJ1bihvcHRpb25zOiBEb2NrZXJPcHRpb25zKTogUHJvbWlzZTxBY3Rpb25SZXNwb25zZTxEb2NrZXJSZXNwb25zZT4+IHtcblx0XHRjb25zdCBwcm9qZWN0cyA9IGF3YWl0IHRoaXMuZ2V0RG9ja2VyUHJvamVjdHMoXG5cdFx0XHR0aGlzLndvcmtzcGFjZS5nZXRQcm9qZWN0cyhvcHRpb25zLmNvbmZpZ3VyYXRpb24pLFxuXHRcdCk7XG5cdFx0aWYgKHByb2plY3RzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0dGhyb3cgbmV3IEZvcmdlRXJyb3IoYE5vIHByb2plY3RzIGZvdW5kIHdpdGggYSBEb2NrZXJmaWxlYCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgdmVyc2lvbiA9IGF3YWl0IHRoaXMud29ya3NwYWNlLmdldFZlcnNpb24oKTtcblx0XHRjb25zdCByZXNwb25zZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdHByb2plY3RzLm1hcChhc3luYyAocHJvamVjdCkgPT4gYXdhaXQgdGhpcy5idWlsZFByb2plY3QocHJvamVjdCwgdmVyc2lvbiwgb3B0aW9ucykpLFxuXHRcdCk7XG5cdFx0Y29uc3QgZmFpbGVkID0gcmVzcG9uc2VzLmZpbHRlcigocmVzcG9uc2UpID0+ICFyZXNwb25zZS5zdWNjZWVkZWQpO1xuXHRcdGlmIChmYWlsZWQubGVuZ3RoID4gMCkge1xuXHRcdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLkVycm9yKERvY2tlci5uYW1lLCByZXNwb25zZXMpO1xuXHRcdH1cblx0XHRyZXR1cm4gQWN0aW9uUmVzcG9uc2UuU3VjY2VzcyhEb2NrZXIubmFtZSwgcmVzcG9uc2VzKTtcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgZ2V0RG9ja2VyUHJvamVjdHMocHJvamVjdHM6IHJlYWRvbmx5IFByb2plY3RbXSkge1xuXHRcdGNvbnN0IHJlc3VsdDogUHJvamVjdFtdID0gW107XG5cdFx0Zm9yIChjb25zdCBwcm9qZWN0IG9mIHByb2plY3RzKSB7XG5cdFx0XHRjb25zdCBkb2NrZXJmaWxlID0gcHJvamVjdC5kb2NrZXJDb25maWc/LmRvY2tlcmZpbGUgPz8gXCJEb2NrZXJmaWxlXCI7XG5cdFx0XHRjb25zdCBkb2NrZXJmaWxlUGF0aCA9IHBhdGguam9pbihwcm9qZWN0LnByb2plY3RSb290LCBkb2NrZXJmaWxlKTtcblx0XHRcdGlmICghKGF3YWl0IGlvLmZpbGVFeGlzdHMoZG9ja2VyZmlsZVBhdGgpKSkge1xuXHRcdFx0XHR0aGlzLiNsb2dnZXIuaW5mbyhgU2tpcHBpbmcgJHtwcm9qZWN0Lm5hbWV9OiBtaXNzaW5nICR7ZG9ja2VyZmlsZX1gKTtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdHJlc3VsdC5wdXNoKHByb2plY3QpO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBidWlsZFByb2plY3QoXG5cdFx0cHJvamVjdDogUHJvamVjdCxcblx0XHR2ZXJzaW9uOiBzdHJpbmcsXG5cdFx0b3B0aW9uczogRG9ja2VyT3B0aW9ucyxcblx0KTogUHJvbWlzZTxEb2NrZXJSZXNwb25zZT4ge1xuXHRcdGNvbnN0IGRvY2tlckNvbmZpZyA9IHByb2plY3QuZG9ja2VyQ29uZmlnID8/IHt9O1xuXHRcdGNvbnN0IGVudkJ1aWxkQXJncyA9IHRoaXMucGFyc2VKc29uRW52PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuXHRcdFx0XCJGT1JHRV9ET0NLRVJfQlVJTERfQVJHU19KU09OXCIsXG5cdFx0XHR7fSxcblx0XHQpO1xuXHRcdGNvbnN0IGVudlNlY3JldHMgPSB0aGlzLnBhcnNlSnNvbkVudjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0XHRcdFwiRk9SR0VfRE9DS0VSX1NFQ1JFVFNfSlNPTlwiLFxuXHRcdFx0e30sXG5cdFx0KTtcblx0XHRjb25zdCBlbnZUYWdzID0gdGhpcy5wYXJzZUpzb25FbnY8c3RyaW5nW10+KFwiRk9SR0VfRE9DS0VSX0VYVFJBX1RBR1NfSlNPTlwiLCBbXSk7XG5cblx0XHRjb25zdCBpbWFnZSA9IGRvY2tlckNvbmZpZy5pbWFnZSA/PyB0aGlzLmRlZmF1bHRJbWFnZU5hbWUocHJvamVjdC5uYW1lKTtcblx0XHRjb25zdCBkb2NrZXJmaWxlID0gZG9ja2VyQ29uZmlnLmRvY2tlcmZpbGUgPz8gXCJEb2NrZXJmaWxlXCI7XG5cdFx0Y29uc3QgdGFncyA9IFtgJHtpbWFnZX06JHt2ZXJzaW9ufWAsIC4uLihkb2NrZXJDb25maWcudGFncyA/PyBbXSksIC4uLmVudlRhZ3NdO1xuXHRcdGNvbnN0IGJ1aWxkQXJncyA9IHRoaXMuaW50ZXJwb2xhdGVCdWlsZEFyZ3MoXG5cdFx0XHR7IC4uLihkb2NrZXJDb25maWcuYnVpbGRBcmdzID8/IHt9KSwgLi4uZW52QnVpbGRBcmdzIH0sXG5cdFx0XHR2ZXJzaW9uLFxuXHRcdCk7XG5cdFx0Y29uc3Qgc2VjcmV0cyA9IHsgLi4uKGRvY2tlckNvbmZpZy5zZWNyZXRzID8/IHt9KSwgLi4uZW52U2VjcmV0cyB9O1xuXG5cdFx0dGhpcy4jbG9nZ2VyLmluZm8oYCR7b3B0aW9ucy5kcnlSdW4gPyBcIltkcnktcnVuXSBcIiA6IFwiXCJ9QnVpbGRpbmcgJHtwcm9qZWN0Lm5hbWV9YCk7XG5cdFx0dHJ5IHtcblx0XHRcdGlmICghb3B0aW9ucy5kcnlSdW4pIHtcblx0XHRcdFx0YXdhaXQgdGhpcy5kb2NrZXIuYnVpbGQocHJvamVjdC5wcm9qZWN0Um9vdCwge1xuXHRcdFx0XHRcdGN3ZDogcHJvamVjdC5wcm9qZWN0Um9vdCxcblx0XHRcdFx0XHRkb2NrZXJmaWxlOiBwYXRoLmpvaW4ocHJvamVjdC5wcm9qZWN0Um9vdCwgZG9ja2VyZmlsZSksXG5cdFx0XHRcdFx0dGFncyxcblx0XHRcdFx0XHRidWlsZEFyZ3MsXG5cdFx0XHRcdFx0c2VjcmV0cyxcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0aWYgKG9wdGlvbnMucHVzaCB8fCBkb2NrZXJDb25maWcucHVzaCkge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgdGFnIG9mIHRhZ3MpIHtcblx0XHRcdFx0XHRcdGF3YWl0IHRoaXMuZG9ja2VyLnB1c2godGFnLCB7IGN3ZDogcHJvamVjdC5wcm9qZWN0Um9vdCB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0cHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcblx0XHRcdFx0aW1hZ2UsXG5cdFx0XHRcdHRhZ3MsXG5cdFx0XHRcdHN1Y2NlZWRlZDogdHJ1ZSxcblx0XHRcdFx0bWVzc2FnZTogb3B0aW9ucy5kcnlSdW4gPyBcIkRyeSBydW5cIiA6IGBCdWlsdCAke2ltYWdlfWAsXG5cdFx0XHR9O1xuXHRcdH0gY2F0Y2ggKHJlYXNvbikge1xuXHRcdFx0Y29uc3QgbWVzc2FnZSA9IGZvcm1hdFVua25vd25FcnJvcihyZWFzb24pO1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0cHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcblx0XHRcdFx0aW1hZ2UsXG5cdFx0XHRcdHRhZ3MsXG5cdFx0XHRcdHN1Y2NlZWRlZDogZmFsc2UsXG5cdFx0XHRcdG1lc3NhZ2UsXG5cdFx0XHRcdGVycm9yOiBgJHtwcm9qZWN0Lm5hbWV9OiAke21lc3NhZ2V9YCxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBpbnRlcnBvbGF0ZUJ1aWxkQXJncyhcblx0XHRidWlsZEFyZ3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQsXG5cdFx0dmVyc2lvbjogc3RyaW5nLFxuXHQpIHtcblx0XHRjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblx0XHRjb25zdCB2ZXJzaW9uUGxhY2Vob2xkZXIgPSBcIiRcIiArIFwie3ZlcnNpb259XCI7XG5cdFx0Zm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYnVpbGRBcmdzID8/IHt9KSkge1xuXHRcdFx0cmVzdWx0W2tleV0gPSB2YWx1ZS5zcGxpdCh2ZXJzaW9uUGxhY2Vob2xkZXIpLmpvaW4odmVyc2lvbik7XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRwcml2YXRlIGRlZmF1bHRJbWFnZU5hbWUocHJvamVjdE5hbWU6IHN0cmluZykge1xuXHRcdHJldHVybiBgJHt0aGlzLiNkZWZhdWx0UmVnaXN0cnl9LyR7dGhpcy5ub3JtYWxpemVEb2NrZXJSZXBvc2l0b3J5KHByb2plY3ROYW1lKX1gO1xuXHR9XG5cblx0cHJpdmF0ZSBub3JtYWxpemVEb2NrZXJSZXBvc2l0b3J5KG5hbWU6IHN0cmluZykge1xuXHRcdGNvbnN0IHJlcG9zaXRvcnkgPSBuYW1lXG5cdFx0XHQucmVwbGFjZSgvXkAvLCBcIlwiKVxuXHRcdFx0LnNwbGl0KFwiL1wiKVxuXHRcdFx0Lm1hcCgoc2VnbWVudCkgPT5cblx0XHRcdFx0c2VnbWVudFxuXHRcdFx0XHRcdC50b0xvd2VyQ2FzZSgpXG5cdFx0XHRcdFx0LnJlcGxhY2UoL1teYS16MC05XSsvZywgXCItXCIpXG5cdFx0XHRcdFx0LnJlcGxhY2UoL14tK3wtKyQvZywgXCJcIiksXG5cdFx0XHQpXG5cdFx0XHQuZmlsdGVyKEJvb2xlYW4pXG5cdFx0XHQuam9pbihcIi9cIik7XG5cblx0XHRpZiAocmVwb3NpdG9yeSA9PT0gXCJcIikge1xuXHRcdFx0dGhyb3cgbmV3IEZvcmdlRXJyb3IoYENvdWxkIG5vdCBkZXJpdmUgYSBEb2NrZXIgcmVwb3NpdG9yeSBmcm9tIHByb2plY3QgbmFtZSBcIiR7bmFtZX1cImApO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXBvc2l0b3J5O1xuXHR9XG5cblx0cHJpdmF0ZSBwYXJzZUpzb25FbnY8VD4obmFtZTogc3RyaW5nLCBmYWxsYmFjazogVCk6IFQge1xuXHRcdGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV07XG5cdFx0aWYgKHZhbHVlID09IG51bGwgfHwgdmFsdWUudHJpbSgpID09PSBcIlwiKSB7XG5cdFx0XHRyZXR1cm4gZmFsbGJhY2s7XG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBKU09OLnBhcnNlKHZhbHVlKSBhcyBUO1xuXHRcdH0gY2F0Y2ggKHJlYXNvbikge1xuXHRcdFx0dGhyb3cgbmV3IEZvcmdlRXJyb3IoYEludmFsaWQgSlNPTiBpbiAke25hbWV9OiAke2Zvcm1hdFVua25vd25FcnJvcihyZWFzb24pfWApO1xuXHRcdH1cblx0fVxufVxuIl0sIm5hbWVzIjpbIkRvY2tlciIsInNjcmliZSIsImxvZ2dlciIsIm5hbWUiLCJkb2NrZXIiLCJEb2NrZXJJbnRlcm9wIiwicHJvY2VzcyIsImVudiIsIkZPUkdFX0RPQ0tFUl9SRUdJU1RSWSIsInRyaW0iLCJ3b3Jrc3BhY2UiLCJydW4iLCJvcHRpb25zIiwicHJvamVjdHMiLCJnZXREb2NrZXJQcm9qZWN0cyIsImdldFByb2plY3RzIiwiY29uZmlndXJhdGlvbiIsImxlbmd0aCIsIkZvcmdlRXJyb3IiLCJ2ZXJzaW9uIiwiZ2V0VmVyc2lvbiIsInJlc3BvbnNlcyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJwcm9qZWN0IiwiYnVpbGRQcm9qZWN0IiwiZmFpbGVkIiwiZmlsdGVyIiwicmVzcG9uc2UiLCJzdWNjZWVkZWQiLCJBY3Rpb25SZXNwb25zZSIsIkVycm9yIiwiU3VjY2VzcyIsInJlc3VsdCIsImRvY2tlcmZpbGUiLCJkb2NrZXJDb25maWciLCJkb2NrZXJmaWxlUGF0aCIsInBhdGgiLCJqb2luIiwicHJvamVjdFJvb3QiLCJpbyIsImZpbGVFeGlzdHMiLCJpbmZvIiwicHVzaCIsImVudkJ1aWxkQXJncyIsInBhcnNlSnNvbkVudiIsImVudlNlY3JldHMiLCJlbnZUYWdzIiwiaW1hZ2UiLCJkZWZhdWx0SW1hZ2VOYW1lIiwidGFncyIsImJ1aWxkQXJncyIsImludGVycG9sYXRlQnVpbGRBcmdzIiwic2VjcmV0cyIsImRyeVJ1biIsImJ1aWxkIiwiY3dkIiwidGFnIiwicHJvamVjdE5hbWUiLCJtZXNzYWdlIiwicmVhc29uIiwiZm9ybWF0VW5rbm93bkVycm9yIiwiZXJyb3IiLCJ2ZXJzaW9uUGxhY2Vob2xkZXIiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJzcGxpdCIsIm5vcm1hbGl6ZURvY2tlclJlcG9zaXRvcnkiLCJyZXBvc2l0b3J5IiwicmVwbGFjZSIsInNlZ21lbnQiLCJ0b0xvd2VyQ2FzZSIsIkJvb2xlYW4iLCJmYWxsYmFjayIsIkpTT04iLCJwYXJzZSJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEwQmFBOzs7ZUFBQUE7OztpRUExQkk7NEJBQ1U7c0JBR0Q7cUJBRUs7eUJBQ1M7b0JBQ3JCO3dCQUNJO3dCQUN3Qjs7Ozs7Ozs7Ozs7Ozs7O0FBZ0J4QyxNQUFNQTs7SUFDWixDQUFBLE1BQU8sR0FBR0MsY0FBTSxDQUFDQyxNQUFNLENBQUNGLE9BQU9HLElBQUksRUFBRTtJQUNwQkMsU0FBUyxJQUFJQyxlQUFhLEdBQUc7SUFDckMsQ0FBQSxlQUFnQixHQUFHQyxRQUFRQyxHQUFHLENBQUNDLHFCQUFxQixFQUFFQyxVQUFVLFVBQVU7SUFFbkYsWUFBbUIsQUFBaUJDLFNBQW9CLENBQUU7YUFBdEJBLFlBQUFBO0lBQXVCO0lBRTNELE1BQWFDLElBQUlDLE9BQXNCLEVBQTJDO1FBQ2pGLE1BQU1DLFdBQVcsTUFBTSxJQUFJLENBQUNDLGlCQUFpQixDQUM1QyxJQUFJLENBQUNKLFNBQVMsQ0FBQ0ssV0FBVyxDQUFDSCxRQUFRSSxhQUFhO1FBRWpELElBQUlILFNBQVNJLE1BQU0sS0FBSyxHQUFHO1lBQzFCLE1BQU0sSUFBSUMsa0JBQVUsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDO1FBQzNEO1FBRUEsTUFBTUMsVUFBVSxNQUFNLElBQUksQ0FBQ1QsU0FBUyxDQUFDVSxVQUFVO1FBQy9DLE1BQU1DLFlBQVksTUFBTUMsUUFBUUMsR0FBRyxDQUNsQ1YsU0FBU1csR0FBRyxDQUFDLE9BQU9DLFVBQVksTUFBTSxJQUFJLENBQUNDLFlBQVksQ0FBQ0QsU0FBU04sU0FBU1A7UUFFM0UsTUFBTWUsU0FBU04sVUFBVU8sTUFBTSxDQUFDLENBQUNDLFdBQWEsQ0FBQ0EsU0FBU0MsU0FBUztRQUNqRSxJQUFJSCxPQUFPVixNQUFNLEdBQUcsR0FBRztZQUN0QixPQUFPYyxtQkFBYyxDQUFDQyxLQUFLLENBQUNoQyxPQUFPRyxJQUFJLEVBQUVrQjtRQUMxQztRQUNBLE9BQU9VLG1CQUFjLENBQUNFLE9BQU8sQ0FBQ2pDLE9BQU9HLElBQUksRUFBRWtCO0lBQzVDO0lBRUEsTUFBY1Asa0JBQWtCRCxRQUE0QixFQUFFO1FBQzdELE1BQU1xQixTQUFvQixFQUFFO1FBQzVCLEtBQUssTUFBTVQsV0FBV1osU0FBVTtZQUMvQixNQUFNc0IsYUFBYVYsUUFBUVcsWUFBWSxFQUFFRCxjQUFjO1lBQ3ZELE1BQU1FLGlCQUFpQkMsaUJBQUksQ0FBQ0MsSUFBSSxDQUFDZCxRQUFRZSxXQUFXLEVBQUVMO1lBQ3RELElBQUksQ0FBRSxNQUFNTSxNQUFFLENBQUNDLFVBQVUsQ0FBQ0wsaUJBQWtCO2dCQUMzQyxJQUFJLENBQUMsQ0FBQSxNQUFPLENBQUNNLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRWxCLFFBQVF0QixJQUFJLENBQUMsVUFBVSxFQUFFZ0MsWUFBWTtnQkFDbkU7WUFDRDtZQUVBRCxPQUFPVSxJQUFJLENBQUNuQjtRQUNiO1FBQ0EsT0FBT1M7SUFDUjtJQUVBLE1BQWNSLGFBQ2JELE9BQWdCLEVBQ2hCTixPQUFlLEVBQ2ZQLE9BQXNCLEVBQ0k7UUFDMUIsTUFBTXdCLGVBQWVYLFFBQVFXLFlBQVksSUFBSSxDQUFDO1FBQzlDLE1BQU1TLGVBQWUsSUFBSSxDQUFDQyxZQUFZLENBQ3JDLGdDQUNBLENBQUM7UUFFRixNQUFNQyxhQUFhLElBQUksQ0FBQ0QsWUFBWSxDQUNuQyw2QkFDQSxDQUFDO1FBRUYsTUFBTUUsVUFBVSxJQUFJLENBQUNGLFlBQVksQ0FBVyxnQ0FBZ0MsRUFBRTtRQUU5RSxNQUFNRyxRQUFRYixhQUFhYSxLQUFLLElBQUksSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQ3pCLFFBQVF0QixJQUFJO1FBQ3RFLE1BQU1nQyxhQUFhQyxhQUFhRCxVQUFVLElBQUk7UUFDOUMsTUFBTWdCLE9BQU87WUFBQyxHQUFHRixNQUFNLENBQUMsRUFBRTlCLFNBQVM7ZUFBTWlCLGFBQWFlLElBQUksSUFBSSxFQUFFO2VBQU1IO1NBQVE7UUFDOUUsTUFBTUksWUFBWSxJQUFJLENBQUNDLG9CQUFvQixDQUMxQztZQUFFLEdBQUlqQixhQUFhZ0IsU0FBUyxJQUFJLENBQUMsQ0FBQztZQUFHLEdBQUdQLFlBQVk7UUFBQyxHQUNyRDFCO1FBRUQsTUFBTW1DLFVBQVU7WUFBRSxHQUFJbEIsYUFBYWtCLE9BQU8sSUFBSSxDQUFDLENBQUM7WUFBRyxHQUFHUCxVQUFVO1FBQUM7UUFFakUsSUFBSSxDQUFDLENBQUEsTUFBTyxDQUFDSixJQUFJLENBQUMsR0FBRy9CLFFBQVEyQyxNQUFNLEdBQUcsZUFBZSxHQUFHLFNBQVMsRUFBRTlCLFFBQVF0QixJQUFJLEVBQUU7UUFDakYsSUFBSTtZQUNILElBQUksQ0FBQ1MsUUFBUTJDLE1BQU0sRUFBRTtnQkFDcEIsTUFBTSxJQUFJLENBQUNuRCxNQUFNLENBQUNvRCxLQUFLLENBQUMvQixRQUFRZSxXQUFXLEVBQUU7b0JBQzVDaUIsS0FBS2hDLFFBQVFlLFdBQVc7b0JBQ3hCTCxZQUFZRyxpQkFBSSxDQUFDQyxJQUFJLENBQUNkLFFBQVFlLFdBQVcsRUFBRUw7b0JBQzNDZ0I7b0JBQ0FDO29CQUNBRTtnQkFDRDtnQkFFQSxJQUFJMUMsUUFBUWdDLElBQUksSUFBSVIsYUFBYVEsSUFBSSxFQUFFO29CQUN0QyxLQUFLLE1BQU1jLE9BQU9QLEtBQU07d0JBQ3ZCLE1BQU0sSUFBSSxDQUFDL0MsTUFBTSxDQUFDd0MsSUFBSSxDQUFDYyxLQUFLOzRCQUFFRCxLQUFLaEMsUUFBUWUsV0FBVzt3QkFBQztvQkFDeEQ7Z0JBQ0Q7WUFDRDtZQUVBLE9BQU87Z0JBQ05tQixhQUFhbEMsUUFBUXRCLElBQUk7Z0JBQ3pCOEM7Z0JBQ0FFO2dCQUNBckIsV0FBVztnQkFDWDhCLFNBQVNoRCxRQUFRMkMsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUVOLE9BQU87WUFDdkQ7UUFDRCxFQUFFLE9BQU9ZLFFBQVE7WUFDaEIsTUFBTUQsVUFBVUUsSUFBQUEsMEJBQWtCLEVBQUNEO1lBQ25DLE9BQU87Z0JBQ05GLGFBQWFsQyxRQUFRdEIsSUFBSTtnQkFDekI4QztnQkFDQUU7Z0JBQ0FyQixXQUFXO2dCQUNYOEI7Z0JBQ0FHLE9BQU8sR0FBR3RDLFFBQVF0QixJQUFJLENBQUMsRUFBRSxFQUFFeUQsU0FBUztZQUNyQztRQUNEO0lBQ0Q7SUFFUVAscUJBQ1BELFNBQTZDLEVBQzdDakMsT0FBZSxFQUNkO1FBQ0QsTUFBTWUsU0FBaUMsQ0FBQztRQUN4QyxNQUFNOEIscUJBQXFCLE1BQU07UUFDakMsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDaEIsYUFBYSxDQUFDLEdBQUk7WUFDM0RsQixNQUFNLENBQUMrQixJQUFJLEdBQUdDLE1BQU1HLEtBQUssQ0FBQ0wsb0JBQW9CekIsSUFBSSxDQUFDcEI7UUFDcEQ7UUFDQSxPQUFPZTtJQUNSO0lBRVFnQixpQkFBaUJTLFdBQW1CLEVBQUU7UUFDN0MsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFBLGVBQWdCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQ1cseUJBQXlCLENBQUNYLGNBQWM7SUFDakY7SUFFUVcsMEJBQTBCbkUsSUFBWSxFQUFFO1FBQy9DLE1BQU1vRSxhQUFhcEUsS0FDakJxRSxPQUFPLENBQUMsTUFBTSxJQUNkSCxLQUFLLENBQUMsS0FDTjdDLEdBQUcsQ0FBQyxDQUFDaUQsVUFDTEEsUUFDRUMsV0FBVyxHQUNYRixPQUFPLENBQUMsZUFBZSxLQUN2QkEsT0FBTyxDQUFDLFlBQVksS0FFdEI1QyxNQUFNLENBQUMrQyxTQUNQcEMsSUFBSSxDQUFDO1FBRVAsSUFBSWdDLGVBQWUsSUFBSTtZQUN0QixNQUFNLElBQUlyRCxrQkFBVSxDQUFDLENBQUMsd0RBQXdELEVBQUVmLEtBQUssQ0FBQyxDQUFDO1FBQ3hGO1FBRUEsT0FBT29FO0lBQ1I7SUFFUXpCLGFBQWdCM0MsSUFBWSxFQUFFeUUsUUFBVyxFQUFLO1FBQ3JELE1BQU1WLFFBQVE1RCxRQUFRQyxHQUFHLENBQUNKLEtBQUs7UUFDL0IsSUFBSStELFNBQVMsUUFBUUEsTUFBTXpELElBQUksT0FBTyxJQUFJO1lBQ3pDLE9BQU9tRTtRQUNSO1FBRUEsSUFBSTtZQUNILE9BQU9DLEtBQUtDLEtBQUssQ0FBQ1o7UUFDbkIsRUFBRSxPQUFPTCxRQUFRO1lBQ2hCLE1BQU0sSUFBSTNDLGtCQUFVLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRWYsS0FBSyxFQUFFLEVBQUUyRCxJQUFBQSwwQkFBa0IsRUFBQ0QsU0FBUztRQUM5RTtJQUNEO0FBQ0QifQ==
|
|
@@ -8,6 +8,7 @@ _export_star(require("./commit.action.js"), exports);
|
|
|
8
8
|
_export_star(require("./copy.action.js"), exports);
|
|
9
9
|
_export_star(require("./dependency-report.action.js"), exports);
|
|
10
10
|
_export_star(require("./dependency-sync.action.js"), exports);
|
|
11
|
+
_export_star(require("./docker.action.js"), exports);
|
|
11
12
|
_export_star(require("./link.action.js"), exports);
|
|
12
13
|
_export_star(require("./publish.action.js"), exports);
|
|
13
14
|
_export_star(require("./sync-lock-file.action.js"), exports);
|
|
@@ -29,4 +30,4 @@ function _export_star(from, to) {
|
|
|
29
30
|
return from;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9hY3Rpb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2J1aWxkLmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2xlYW4uYWN0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21taXQuYWN0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb3B5LmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVwZW5kZW5jeS1yZXBvcnQuYWN0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZXBlbmRlbmN5LXN5bmMuYWN0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kb2NrZXIuYWN0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saW5rLmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHVibGlzaC5hY3Rpb24uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N5bmMtbG9jay1maWxlLmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFnLmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdW5saW5rLmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmVyc2lvbi5hY3Rpb24uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3dhdGNoLmFjdGlvbi5qc1wiO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWM7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0EifQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "DockerCommand", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return DockerCommand;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _cli = require("@decohere/nexus/cli");
|
|
12
|
+
const _dockeraction = require("../actions/docker.action.js");
|
|
13
|
+
class DockerCommand extends _cli.DecohereCommand {
|
|
14
|
+
get actions() {
|
|
15
|
+
return [
|
|
16
|
+
_dockeraction.Docker
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
constructor(name){
|
|
20
|
+
super(name);
|
|
21
|
+
this.description("Build Docker images for workspace projects");
|
|
22
|
+
this.addOption(new _cli.ConfigurationOption("release"));
|
|
23
|
+
this.addOption(new _cli.DryRunOption("Run docker build without executing it"));
|
|
24
|
+
this.option("--push", "Push built images after a successful build", false);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9jb21tYW5kcy9kb2NrZXIuY29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWd1cmF0aW9uT3B0aW9uLCBEZWNvaGVyZUNvbW1hbmQsIERyeVJ1bk9wdGlvbiB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBEb2NrZXIgfSBmcm9tIFwiLi4vYWN0aW9ucy9kb2NrZXIuYWN0aW9uLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBEb2NrZXJDb21tYW5kIGV4dGVuZHMgRGVjb2hlcmVDb21tYW5kIHtcblx0cHVibGljIG92ZXJyaWRlIGdldCBhY3Rpb25zKCkge1xuXHRcdHJldHVybiBbRG9ja2VyXTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcblx0XHRzdXBlcihuYW1lKTtcblx0XHR0aGlzLmRlc2NyaXB0aW9uKFwiQnVpbGQgRG9ja2VyIGltYWdlcyBmb3Igd29ya3NwYWNlIHByb2plY3RzXCIpO1xuXHRcdHRoaXMuYWRkT3B0aW9uKG5ldyBDb25maWd1cmF0aW9uT3B0aW9uKFwicmVsZWFzZVwiKSk7XG5cdFx0dGhpcy5hZGRPcHRpb24obmV3IERyeVJ1bk9wdGlvbihcIlJ1biBkb2NrZXIgYnVpbGQgd2l0aG91dCBleGVjdXRpbmcgaXRcIikpO1xuXHRcdHRoaXMub3B0aW9uKFwiLS1wdXNoXCIsIFwiUHVzaCBidWlsdCBpbWFnZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIGJ1aWxkXCIsIGZhbHNlKTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkRvY2tlckNvbW1hbmQiLCJEZWNvaGVyZUNvbW1hbmQiLCJhY3Rpb25zIiwiRG9ja2VyIiwibmFtZSIsImRlc2NyaXB0aW9uIiwiYWRkT3B0aW9uIiwiQ29uZmlndXJhdGlvbk9wdGlvbiIsIkRyeVJ1bk9wdGlvbiIsIm9wdGlvbiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFHYUE7OztlQUFBQTs7O3FCQUhzRDs4QkFDNUM7QUFFaEIsTUFBTUEsc0JBQXNCQyxvQkFBZTtJQUNqRCxJQUFvQkMsVUFBVTtRQUM3QixPQUFPO1lBQUNDLG9CQUFNO1NBQUM7SUFDaEI7SUFFQSxZQUFtQkMsSUFBWSxDQUFFO1FBQ2hDLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNDLFdBQVcsQ0FBQztRQUNqQixJQUFJLENBQUNDLFNBQVMsQ0FBQyxJQUFJQyx3QkFBbUIsQ0FBQztRQUN2QyxJQUFJLENBQUNELFNBQVMsQ0FBQyxJQUFJRSxpQkFBWSxDQUFDO1FBQ2hDLElBQUksQ0FBQ0MsTUFBTSxDQUFDLFVBQVUsOENBQThDO0lBQ3JFO0FBQ0QifQ==
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
_export_star(require("./build.command.js"), exports);
|
|
6
6
|
_export_star(require("./dependency.command.js"), exports);
|
|
7
|
+
_export_star(require("./docker.command.js"), exports);
|
|
7
8
|
_export_star(require("./forge.command.js"), exports);
|
|
8
9
|
_export_star(require("./link.command.js"), exports);
|
|
9
10
|
_export_star(require("./publish.command.js"), exports);
|
|
@@ -23,4 +24,4 @@ function _export_star(from, to) {
|
|
|
23
24
|
return from;
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9jb21tYW5kcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9idWlsZC5jb21tYW5kLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZXBlbmRlbmN5LmNvbW1hbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RvY2tlci5jb21tYW5kLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3JnZS5jb21tYW5kLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saW5rLmNvbW1hbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3B1Ymxpc2guY29tbWFuZC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFnLmNvbW1hbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZlcnNpb24uY29tbWFuZC5qc1wiO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWM7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0E7cUJBQ0EifQ==
|
|
@@ -65,6 +65,7 @@ class ForgeModule extends _cli.ModuleManifest {
|
|
|
65
65
|
actions = {
|
|
66
66
|
clean: _index.Clean,
|
|
67
67
|
copy: _index.Copy,
|
|
68
|
+
docker: _index.Docker,
|
|
68
69
|
build: _index.Build,
|
|
69
70
|
watch: _index.Watch,
|
|
70
71
|
publish: _index.Publish,
|
|
@@ -81,6 +82,7 @@ class ForgeModule extends _cli.ModuleManifest {
|
|
|
81
82
|
build: _index1.BuildCommand,
|
|
82
83
|
publish: _index1.PublishCommand,
|
|
83
84
|
dependencies: _index1.DependencyCommand,
|
|
85
|
+
docker: _index1.DockerCommand,
|
|
84
86
|
version: _index1.VersionCommand,
|
|
85
87
|
tag: _index1.TagCommand,
|
|
86
88
|
link: _index1.LinkCommand,
|
|
@@ -110,4 +112,4 @@ class ForgeModule extends _cli.ModuleManifest {
|
|
|
110
112
|
}
|
|
111
113
|
}
|
|
112
114
|
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9mb3JnZS5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckNvbmZpZ0ZhY3RvcnksIFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgTW9kdWxlTWFuaWZlc3QgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHR5cGUgeyBDb250YWluZXJCdWlsZGVyIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jb21wb3NpdGlvblwiO1xuaW1wb3J0ICogYXMgQWN0aW9ucyBmcm9tIFwiLi9hY3Rpb25zL2luZGV4LmpzXCI7XG5pbXBvcnQgKiBhcyBDb21tYW5kcyBmcm9tIFwiLi9jb21tYW5kcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVJlc29sdmVyIH0gZnJvbSBcIi4vc2VydmljZXMvZGVwZW5kZW5jeS1yZXNvbHZlci5zZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBGaWxlV3JpdGVyU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL2ZpbGUtd3JpdGVyLnNlcnZpY2UuanNcIjtcbmltcG9ydCB7IFN3Y1RyYW5zcGlsZXIgfSBmcm9tIFwiLi9zZXJ2aWNlcy9zd2MtdHJhbnNwaWxlci5qc1wiO1xuaW1wb3J0IHsgVHlwZUVtaXR0ZXIgfSBmcm9tIFwiLi9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIuanNcIjtcbmltcG9ydCB7IFRyYW5zZm9ybWVyS2V5IH0gZnJvbSBcIi4vdHlwZXMvdHJhbnNmb3JtZXIudHlwZS5qc1wiO1xuaW1wb3J0IHsgRGVmYXVsdENvbmZpZ3VyYXRpb25zLCBXb3Jrc3BhY2VEZWZhdWx0cyB9IGZyb20gXCIuL3dvcmtzcGFjZS5jb25maWcuanNcIjtcblxuZXhwb3J0IGNsYXNzIEZvcmdlTW9kdWxlIGV4dGVuZHMgTW9kdWxlTWFuaWZlc3Qge1xuXHRwdWJsaWMgcmVhZG9ubHkgaWQgPSBcImZvcmdlXCI7XG5cdHB1YmxpYyByZWFkb25seSBjb21tYW5kID0gQ29tbWFuZHMuRm9yZ2VDb21tYW5kO1xuXHRwdWJsaWMgcmVhZG9ubHkgYWN0aW9ucyA9IHtcblx0XHRjbGVhbjogQWN0aW9ucy5DbGVhbixcblx0XHRjb3B5OiBBY3Rpb25zLkNvcHksXG5cdFx0ZG9ja2VyOiBBY3Rpb25zLkRvY2tlcixcblx0XHRidWlsZDogQWN0aW9ucy5CdWlsZCxcblx0XHR3YXRjaDogQWN0aW9ucy5XYXRjaCxcblx0XHRwdWJsaXNoOiBBY3Rpb25zLlB1Ymxpc2gsXG5cdFx0c3luY0RlcGVuZGVuY2llczogQWN0aW9ucy5TeW5jRGVwZW5kZW5jaWVzLFxuXHRcdHN5bmNMb2NrRmlsZTogQWN0aW9ucy5TeW5jTG9ja0ZpbGUsXG5cdFx0cmVwb3J0RGVwZW5kZW5jaWVzOiBBY3Rpb25zLlJlcG9ydERlcGVuZGVuY2llcyxcblx0XHR2ZXJzaW9uOiBBY3Rpb25zLlZlcnNpb24sXG5cdFx0dGFnOiBBY3Rpb25zLlRhZyxcblx0XHRjb21taXRGaWxlczogQWN0aW9ucy5Db21taXRGaWxlcyxcblx0XHRsaW5rOiBBY3Rpb25zLkxpbmssXG5cdFx0dW5saW5rOiBBY3Rpb25zLlVubGluayxcblx0fTtcblx0cHVibGljIHJlYWRvbmx5IGNvbW1hbmRzID0ge1xuXHRcdGJ1aWxkOiBDb21tYW5kcy5CdWlsZENvbW1hbmQsXG5cdFx0cHVibGlzaDogQ29tbWFuZHMuUHVibGlzaENvbW1hbmQsXG5cdFx0ZGVwZW5kZW5jaWVzOiBDb21tYW5kcy5EZXBlbmRlbmN5Q29tbWFuZCxcblx0XHRkb2NrZXI6IENvbW1hbmRzLkRvY2tlckNvbW1hbmQsXG5cdFx0dmVyc2lvbjogQ29tbWFuZHMuVmVyc2lvbkNvbW1hbmQsXG5cdFx0dGFnOiBDb21tYW5kcy5UYWdDb21tYW5kLFxuXHRcdGxpbms6IENvbW1hbmRzLkxpbmtDb21tYW5kLFxuXHRcdHVubGluazogQ29tbWFuZHMuVW5saW5rQ29tbWFuZCxcblx0fTtcblxuXHRwdWJsaWMgcmVnaXN0ZXJTZXJ2aWNlcyhidWlsZGVyOiBDb250YWluZXJCdWlsZGVyKSB7XG5cdFx0YnVpbGRlci5yZWdpc3RlclNpbmdsZXRvbihUcmFuc2Zvcm1lcktleSwgU3djVHJhbnNwaWxlcik7XG5cdFx0YnVpbGRlci5yZWdpc3RlclNpbmdsZXRvbihUcmFuc2Zvcm1lcktleSwgVHlwZUVtaXR0ZXIpO1xuXHRcdGJ1aWxkZXIucmVnaXN0ZXJTaW5nbGV0b24oRGVwZW5kZW5jeVJlc29sdmVyKTtcblx0XHRidWlsZGVyLnJlZ2lzdGVyU2luZ2xldG9uKEZpbGVXcml0ZXJTZXJ2aWNlKTtcblx0fVxuXG5cdHB1YmxpYyBvdmVycmlkZSBhc3luYyBjcmVhdGVXb3Jrc3BhY2Uob3B0aW9uczogV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMpIHtcblx0XHRjb25zdCB7IGNvbmZpZ3VyYXRpb25zOiBfLCAuLi5mb3JnZURlZmF1bHRzIH0gPSBXb3Jrc3BhY2VEZWZhdWx0cztcblx0XHRjb25zdCB1c2VyQ29uZmlnID0gYXdhaXQgVXNlckNvbmZpZ0ZhY3RvcnkuZ2V0VXNlckNvbmZpZyhvcHRpb25zLmNvbmZpZ0ZpbGUpO1xuXHRcdC8vIE9ubHkgYXBwbHkgZm9yZ2UgZGVmYXVsdCBjb25maWd1cmF0aW9ucyB3aGVuIHVzZXIgY29uZmlnIGRvZXNuJ3QgcHJvdmlkZSBhbnkuXG5cdFx0Ly8gVGhpcyBlbnN1cmVzIHVzZXItZGVmaW5lZCBjb25maWd1cmF0aW9ucyB0YWtlIHByaW9yaXR5IHdoaWxlIHN0aWxsIHByb3ZpZGluZ1xuXHRcdC8vIHNlbnNpYmxlIGRlZmF1bHRzIChkZWJ1ZyArIHJlbGVhc2UpIHdoZW4gbm8gY29uZmlnIGZpbGUgaXMgcHJlc2VudC5cblx0XHRjb25zdCBjb25maWd1cmF0aW9ucyA9IHVzZXJDb25maWcuY29uZmlndXJhdGlvbnM/Lmxlbmd0aFxuXHRcdFx0PyB1bmRlZmluZWRcblx0XHRcdDogRGVmYXVsdENvbmZpZ3VyYXRpb25zO1xuXHRcdHJldHVybiBXb3Jrc3BhY2VGYWN0b3J5LmNyZWF0ZSh7XG5cdFx0XHQuLi5mb3JnZURlZmF1bHRzLFxuXHRcdFx0Li4uKGNvbmZpZ3VyYXRpb25zID8geyBjb25maWd1cmF0aW9ucyB9IDoge30pLFxuXHRcdFx0Y29uZmlnRmlsZTogb3B0aW9ucy5jb25maWdGaWxlLFxuXHRcdFx0cm9vdERpcjogb3B0aW9ucy5yb290RGlyID8/IFdvcmtzcGFjZURlZmF1bHRzLnJvb3REaXIsXG5cdFx0fSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJGb3JnZU1vZHVsZSIsIk1vZHVsZU1hbmlmZXN0IiwiaWQiLCJjb21tYW5kIiwiQ29tbWFuZHMiLCJGb3JnZUNvbW1hbmQiLCJhY3Rpb25zIiwiY2xlYW4iLCJBY3Rpb25zIiwiQ2xlYW4iLCJjb3B5IiwiQ29weSIsImRvY2tlciIsIkRvY2tlciIsImJ1aWxkIiwiQnVpbGQiLCJ3YXRjaCIsIldhdGNoIiwicHVibGlzaCIsIlB1Ymxpc2giLCJzeW5jRGVwZW5kZW5jaWVzIiwiU3luY0RlcGVuZGVuY2llcyIsInN5bmNMb2NrRmlsZSIsIlN5bmNMb2NrRmlsZSIsInJlcG9ydERlcGVuZGVuY2llcyIsIlJlcG9ydERlcGVuZGVuY2llcyIsInZlcnNpb24iLCJWZXJzaW9uIiwidGFnIiwiVGFnIiwiY29tbWl0RmlsZXMiLCJDb21taXRGaWxlcyIsImxpbmsiLCJMaW5rIiwidW5saW5rIiwiVW5saW5rIiwiY29tbWFuZHMiLCJCdWlsZENvbW1hbmQiLCJQdWJsaXNoQ29tbWFuZCIsImRlcGVuZGVuY2llcyIsIkRlcGVuZGVuY3lDb21tYW5kIiwiRG9ja2VyQ29tbWFuZCIsIlZlcnNpb25Db21tYW5kIiwiVGFnQ29tbWFuZCIsIkxpbmtDb21tYW5kIiwiVW5saW5rQ29tbWFuZCIsInJlZ2lzdGVyU2VydmljZXMiLCJidWlsZGVyIiwicmVnaXN0ZXJTaW5nbGV0b24iLCJUcmFuc2Zvcm1lcktleSIsIlN3Y1RyYW5zcGlsZXIiLCJUeXBlRW1pdHRlciIsIkRlcGVuZGVuY3lSZXNvbHZlciIsIkZpbGVXcml0ZXJTZXJ2aWNlIiwiY3JlYXRlV29ya3NwYWNlIiwib3B0aW9ucyIsImNvbmZpZ3VyYXRpb25zIiwiXyIsImZvcmdlRGVmYXVsdHMiLCJXb3Jrc3BhY2VEZWZhdWx0cyIsInVzZXJDb25maWciLCJVc2VyQ29uZmlnRmFjdG9yeSIsImdldFVzZXJDb25maWciLCJjb25maWdGaWxlIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiRGVmYXVsdENvbmZpZ3VyYXRpb25zIiwiV29ya3NwYWNlRmFjdG9yeSIsImNyZWF0ZSIsInJvb3REaXIiXSwibWFwcGluZ3MiOiI7Ozs7K0JBYWFBOzs7ZUFBQUE7OztzQkFidUM7cUJBRXJCOytEQUVOO2dFQUNDOzJDQUNTO21DQUNEOytCQUNKOzZCQUNGO2lDQUNHO2lDQUMwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxELE1BQU1BLG9CQUFvQkMsbUJBQWM7SUFDOUJDLEtBQUssUUFBUTtJQUNiQyxVQUFVQyxRQUFTQyxZQUFZLENBQUM7SUFDaENDLFVBQVU7UUFDekJDLE9BQU9DLE9BQVFDLEtBQUs7UUFDcEJDLE1BQU1GLE9BQVFHLElBQUk7UUFDbEJDLFFBQVFKLE9BQVFLLE1BQU07UUFDdEJDLE9BQU9OLE9BQVFPLEtBQUs7UUFDcEJDLE9BQU9SLE9BQVFTLEtBQUs7UUFDcEJDLFNBQVNWLE9BQVFXLE9BQU87UUFDeEJDLGtCQUFrQlosT0FBUWEsZ0JBQWdCO1FBQzFDQyxjQUFjZCxPQUFRZSxZQUFZO1FBQ2xDQyxvQkFBb0JoQixPQUFRaUIsa0JBQWtCO1FBQzlDQyxTQUFTbEIsT0FBUW1CLE9BQU87UUFDeEJDLEtBQUtwQixPQUFRcUIsR0FBRztRQUNoQkMsYUFBYXRCLE9BQVF1QixXQUFXO1FBQ2hDQyxNQUFNeEIsT0FBUXlCLElBQUk7UUFDbEJDLFFBQVExQixPQUFRMkIsTUFBTTtJQUN2QixFQUFFO0lBQ2NDLFdBQVc7UUFDMUJ0QixPQUFPVixRQUFTaUMsWUFBWTtRQUM1Qm5CLFNBQVNkLFFBQVNrQyxjQUFjO1FBQ2hDQyxjQUFjbkMsUUFBU29DLGlCQUFpQjtRQUN4QzVCLFFBQVFSLFFBQVNxQyxhQUFhO1FBQzlCZixTQUFTdEIsUUFBU3NDLGNBQWM7UUFDaENkLEtBQUt4QixRQUFTdUMsVUFBVTtRQUN4QlgsTUFBTTVCLFFBQVN3QyxXQUFXO1FBQzFCVixRQUFROUIsUUFBU3lDLGFBQWE7SUFDL0IsRUFBRTtJQUVLQyxpQkFBaUJDLE9BQXlCLEVBQUU7UUFDbERBLFFBQVFDLGlCQUFpQixDQUFDQywrQkFBYyxFQUFFQyw0QkFBYTtRQUN2REgsUUFBUUMsaUJBQWlCLENBQUNDLCtCQUFjLEVBQUVFLHdCQUFXO1FBQ3JESixRQUFRQyxpQkFBaUIsQ0FBQ0ksNkNBQWtCO1FBQzVDTCxRQUFRQyxpQkFBaUIsQ0FBQ0ssb0NBQWlCO0lBQzVDO0lBRUEsTUFBc0JDLGdCQUFnQkMsT0FBZ0MsRUFBRTtRQUN2RSxNQUFNLEVBQUVDLGdCQUFnQkMsQ0FBQyxFQUFFLEdBQUdDLGVBQWUsR0FBR0Msa0NBQWlCO1FBQ2pFLE1BQU1DLGFBQWEsTUFBTUMsdUJBQWlCLENBQUNDLGFBQWEsQ0FBQ1AsUUFBUVEsVUFBVTtRQUMzRSxnRkFBZ0Y7UUFDaEYsK0VBQStFO1FBQy9FLHNFQUFzRTtRQUN0RSxNQUFNUCxpQkFBaUJJLFdBQVdKLGNBQWMsRUFBRVEsU0FDL0NDLFlBQ0FDLHNDQUFxQjtRQUN4QixPQUFPQyxzQkFBZ0IsQ0FBQ0MsTUFBTSxDQUFDO1lBQzlCLEdBQUdWLGFBQWE7WUFDaEIsR0FBSUYsaUJBQWlCO2dCQUFFQTtZQUFlLElBQUksQ0FBQyxDQUFDO1lBQzVDTyxZQUFZUixRQUFRUSxVQUFVO1lBQzlCTSxTQUFTZCxRQUFRYyxPQUFPLElBQUlWLGtDQUFpQixDQUFDVSxPQUFPO1FBQ3REO0lBQ0Q7QUFDRCJ9
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
}
|
|
7
|
+
function _ts_metadata(k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
}
|
|
10
|
+
import path from "node:path";
|
|
11
|
+
import { injectable } from "@decohere/crucible/decorators";
|
|
12
|
+
// biome-ignore lint/style/useImportType: <DI>
|
|
13
|
+
import { Workspace } from "@decohere/mesh";
|
|
14
|
+
import { ActionResponse } from "@decohere/nexus/cli";
|
|
15
|
+
import { Docker as DockerInterop } from "@decohere/nexus/interop";
|
|
16
|
+
import { io } from "@decohere/nexus/io";
|
|
17
|
+
import { scribe } from "@decohere/scribe";
|
|
18
|
+
import { ForgeError, formatUnknownError } from "../errors.js";
|
|
19
|
+
export class Docker {
|
|
20
|
+
workspace;
|
|
21
|
+
#logger = scribe.logger(Docker.name);
|
|
22
|
+
docker = new DockerInterop();
|
|
23
|
+
#defaultRegistry = process.env.FORGE_DOCKER_REGISTRY?.trim() || "ghcr.io";
|
|
24
|
+
constructor(workspace){
|
|
25
|
+
this.workspace = workspace;
|
|
26
|
+
}
|
|
27
|
+
async run(options) {
|
|
28
|
+
const projects = await this.getDockerProjects(this.workspace.getProjects(options.configuration));
|
|
29
|
+
if (projects.length === 0) {
|
|
30
|
+
throw new ForgeError(`No projects found with a Dockerfile`);
|
|
31
|
+
}
|
|
32
|
+
const version = await this.workspace.getVersion();
|
|
33
|
+
const responses = await Promise.all(projects.map(async (project)=>await this.buildProject(project, version, options)));
|
|
34
|
+
const failed = responses.filter((response)=>!response.succeeded);
|
|
35
|
+
if (failed.length > 0) {
|
|
36
|
+
return ActionResponse.Error(Docker.name, responses);
|
|
37
|
+
}
|
|
38
|
+
return ActionResponse.Success(Docker.name, responses);
|
|
39
|
+
}
|
|
40
|
+
async getDockerProjects(projects) {
|
|
41
|
+
const result = [];
|
|
42
|
+
for (const project of projects){
|
|
43
|
+
const dockerfile = project.dockerConfig?.dockerfile ?? "Dockerfile";
|
|
44
|
+
const dockerfilePath = path.join(project.projectRoot, dockerfile);
|
|
45
|
+
if (!await io.fileExists(dockerfilePath)) {
|
|
46
|
+
this.#logger.info(`Skipping ${project.name}: missing ${dockerfile}`);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
result.push(project);
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
async buildProject(project, version, options) {
|
|
54
|
+
const dockerConfig = project.dockerConfig ?? {};
|
|
55
|
+
const envBuildArgs = this.parseJsonEnv("FORGE_DOCKER_BUILD_ARGS_JSON", {});
|
|
56
|
+
const envSecrets = this.parseJsonEnv("FORGE_DOCKER_SECRETS_JSON", {});
|
|
57
|
+
const envTags = this.parseJsonEnv("FORGE_DOCKER_EXTRA_TAGS_JSON", []);
|
|
58
|
+
const image = dockerConfig.image ?? this.defaultImageName(project.name);
|
|
59
|
+
const dockerfile = dockerConfig.dockerfile ?? "Dockerfile";
|
|
60
|
+
const tags = [
|
|
61
|
+
`${image}:${version}`,
|
|
62
|
+
...dockerConfig.tags ?? [],
|
|
63
|
+
...envTags
|
|
64
|
+
];
|
|
65
|
+
const buildArgs = this.interpolateBuildArgs({
|
|
66
|
+
...dockerConfig.buildArgs ?? {},
|
|
67
|
+
...envBuildArgs
|
|
68
|
+
}, version);
|
|
69
|
+
const secrets = {
|
|
70
|
+
...dockerConfig.secrets ?? {},
|
|
71
|
+
...envSecrets
|
|
72
|
+
};
|
|
73
|
+
this.#logger.info(`${options.dryRun ? "[dry-run] " : ""}Building ${project.name}`);
|
|
74
|
+
try {
|
|
75
|
+
if (!options.dryRun) {
|
|
76
|
+
await this.docker.build(project.projectRoot, {
|
|
77
|
+
cwd: project.projectRoot,
|
|
78
|
+
dockerfile: path.join(project.projectRoot, dockerfile),
|
|
79
|
+
tags,
|
|
80
|
+
buildArgs,
|
|
81
|
+
secrets
|
|
82
|
+
});
|
|
83
|
+
if (options.push || dockerConfig.push) {
|
|
84
|
+
for (const tag of tags){
|
|
85
|
+
await this.docker.push(tag, {
|
|
86
|
+
cwd: project.projectRoot
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
projectName: project.name,
|
|
93
|
+
image,
|
|
94
|
+
tags,
|
|
95
|
+
succeeded: true,
|
|
96
|
+
message: options.dryRun ? "Dry run" : `Built ${image}`
|
|
97
|
+
};
|
|
98
|
+
} catch (reason) {
|
|
99
|
+
const message = formatUnknownError(reason);
|
|
100
|
+
return {
|
|
101
|
+
projectName: project.name,
|
|
102
|
+
image,
|
|
103
|
+
tags,
|
|
104
|
+
succeeded: false,
|
|
105
|
+
message,
|
|
106
|
+
error: `${project.name}: ${message}`
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
interpolateBuildArgs(buildArgs, version) {
|
|
111
|
+
const result = {};
|
|
112
|
+
const versionPlaceholder = "$" + "{version}";
|
|
113
|
+
for (const [key, value] of Object.entries(buildArgs ?? {})){
|
|
114
|
+
result[key] = value.split(versionPlaceholder).join(version);
|
|
115
|
+
}
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
defaultImageName(projectName) {
|
|
119
|
+
return `${this.#defaultRegistry}/${this.normalizeDockerRepository(projectName)}`;
|
|
120
|
+
}
|
|
121
|
+
normalizeDockerRepository(name) {
|
|
122
|
+
const repository = name.replace(/^@/, "").split("/").map((segment)=>segment.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "")).filter(Boolean).join("/");
|
|
123
|
+
if (repository === "") {
|
|
124
|
+
throw new ForgeError(`Could not derive a Docker repository from project name "${name}"`);
|
|
125
|
+
}
|
|
126
|
+
return repository;
|
|
127
|
+
}
|
|
128
|
+
parseJsonEnv(name, fallback) {
|
|
129
|
+
const value = process.env[name];
|
|
130
|
+
if (value == null || value.trim() === "") {
|
|
131
|
+
return fallback;
|
|
132
|
+
}
|
|
133
|
+
try {
|
|
134
|
+
return JSON.parse(value);
|
|
135
|
+
} catch (reason) {
|
|
136
|
+
throw new ForgeError(`Invalid JSON in ${name}: ${formatUnknownError(reason)}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
Docker = _ts_decorate([
|
|
141
|
+
injectable(),
|
|
142
|
+
_ts_metadata("design:type", Function),
|
|
143
|
+
_ts_metadata("design:paramtypes", [
|
|
144
|
+
typeof Workspace === "undefined" ? Object : Workspace
|
|
145
|
+
])
|
|
146
|
+
], Docker);
|
|
147
|
+
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9hY3Rpb25zL2RvY2tlci5hY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgaW5qZWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvY3J1Y2libGUvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdHlsZS91c2VJbXBvcnRUeXBlOiA8REk+XG5pbXBvcnQgeyBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgQWN0aW9uLCBSZXN1bHRTdGF0dXMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgQWN0aW9uUmVzcG9uc2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgRG9ja2VyIGFzIERvY2tlckludGVyb3AgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2ludGVyb3BcIjtcbmltcG9ydCB7IGlvIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHsgc2NyaWJlIH0gZnJvbSBcIkBkZWNvaGVyZS9zY3JpYmVcIjtcbmltcG9ydCB7IEZvcmdlRXJyb3IsIGZvcm1hdFVua25vd25FcnJvciB9IGZyb20gXCIuLi9lcnJvcnMuanNcIjtcblxuZXhwb3J0IHR5cGUgRG9ja2VyT3B0aW9ucyA9IHtcblx0Y29uZmlndXJhdGlvbjogc3RyaW5nO1xuXHRkcnlSdW4/OiBib29sZWFuO1xuXHRwdXNoPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIERvY2tlclJlc3BvbnNlID0gUmVzdWx0U3RhdHVzICYge1xuXHRwcm9qZWN0TmFtZTogc3RyaW5nO1xuXHRpbWFnZTogc3RyaW5nO1xuXHR0YWdzOiBzdHJpbmdbXTtcblx0bWVzc2FnZTogc3RyaW5nO1xufTtcblxuQGluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERvY2tlciBpbXBsZW1lbnRzIEFjdGlvbjxEb2NrZXJPcHRpb25zPiB7XG5cdCNsb2dnZXIgPSBzY3JpYmUubG9nZ2VyKERvY2tlci5uYW1lKTtcblx0cHJpdmF0ZSByZWFkb25seSBkb2NrZXIgPSBuZXcgRG9ja2VySW50ZXJvcCgpO1xuXHRyZWFkb25seSAjZGVmYXVsdFJlZ2lzdHJ5ID0gcHJvY2Vzcy5lbnYuRk9SR0VfRE9DS0VSX1JFR0lTVFJZPy50cmltKCkgfHwgXCJnaGNyLmlvXCI7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgd29ya3NwYWNlOiBXb3Jrc3BhY2UpIHt9XG5cblx0cHVibGljIGFzeW5jIHJ1bihvcHRpb25zOiBEb2NrZXJPcHRpb25zKTogUHJvbWlzZTxBY3Rpb25SZXNwb25zZTxEb2NrZXJSZXNwb25zZT4+IHtcblx0XHRjb25zdCBwcm9qZWN0cyA9IGF3YWl0IHRoaXMuZ2V0RG9ja2VyUHJvamVjdHMoXG5cdFx0XHR0aGlzLndvcmtzcGFjZS5nZXRQcm9qZWN0cyhvcHRpb25zLmNvbmZpZ3VyYXRpb24pLFxuXHRcdCk7XG5cdFx0aWYgKHByb2plY3RzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0dGhyb3cgbmV3IEZvcmdlRXJyb3IoYE5vIHByb2plY3RzIGZvdW5kIHdpdGggYSBEb2NrZXJmaWxlYCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgdmVyc2lvbiA9IGF3YWl0IHRoaXMud29ya3NwYWNlLmdldFZlcnNpb24oKTtcblx0XHRjb25zdCByZXNwb25zZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdHByb2plY3RzLm1hcChhc3luYyAocHJvamVjdCkgPT4gYXdhaXQgdGhpcy5idWlsZFByb2plY3QocHJvamVjdCwgdmVyc2lvbiwgb3B0aW9ucykpLFxuXHRcdCk7XG5cdFx0Y29uc3QgZmFpbGVkID0gcmVzcG9uc2VzLmZpbHRlcigocmVzcG9uc2UpID0+ICFyZXNwb25zZS5zdWNjZWVkZWQpO1xuXHRcdGlmIChmYWlsZWQubGVuZ3RoID4gMCkge1xuXHRcdFx0cmV0dXJuIEFjdGlvblJlc3BvbnNlLkVycm9yKERvY2tlci5uYW1lLCByZXNwb25zZXMpO1xuXHRcdH1cblx0XHRyZXR1cm4gQWN0aW9uUmVzcG9uc2UuU3VjY2VzcyhEb2NrZXIubmFtZSwgcmVzcG9uc2VzKTtcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgZ2V0RG9ja2VyUHJvamVjdHMocHJvamVjdHM6IHJlYWRvbmx5IFByb2plY3RbXSkge1xuXHRcdGNvbnN0IHJlc3VsdDogUHJvamVjdFtdID0gW107XG5cdFx0Zm9yIChjb25zdCBwcm9qZWN0IG9mIHByb2plY3RzKSB7XG5cdFx0XHRjb25zdCBkb2NrZXJmaWxlID0gcHJvamVjdC5kb2NrZXJDb25maWc/LmRvY2tlcmZpbGUgPz8gXCJEb2NrZXJmaWxlXCI7XG5cdFx0XHRjb25zdCBkb2NrZXJmaWxlUGF0aCA9IHBhdGguam9pbihwcm9qZWN0LnByb2plY3RSb290LCBkb2NrZXJmaWxlKTtcblx0XHRcdGlmICghKGF3YWl0IGlvLmZpbGVFeGlzdHMoZG9ja2VyZmlsZVBhdGgpKSkge1xuXHRcdFx0XHR0aGlzLiNsb2dnZXIuaW5mbyhgU2tpcHBpbmcgJHtwcm9qZWN0Lm5hbWV9OiBtaXNzaW5nICR7ZG9ja2VyZmlsZX1gKTtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdHJlc3VsdC5wdXNoKHByb2plY3QpO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBidWlsZFByb2plY3QoXG5cdFx0cHJvamVjdDogUHJvamVjdCxcblx0XHR2ZXJzaW9uOiBzdHJpbmcsXG5cdFx0b3B0aW9uczogRG9ja2VyT3B0aW9ucyxcblx0KTogUHJvbWlzZTxEb2NrZXJSZXNwb25zZT4ge1xuXHRcdGNvbnN0IGRvY2tlckNvbmZpZyA9IHByb2plY3QuZG9ja2VyQ29uZmlnID8/IHt9O1xuXHRcdGNvbnN0IGVudkJ1aWxkQXJncyA9IHRoaXMucGFyc2VKc29uRW52PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuXHRcdFx0XCJGT1JHRV9ET0NLRVJfQlVJTERfQVJHU19KU09OXCIsXG5cdFx0XHR7fSxcblx0XHQpO1xuXHRcdGNvbnN0IGVudlNlY3JldHMgPSB0aGlzLnBhcnNlSnNvbkVudjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0XHRcdFwiRk9SR0VfRE9DS0VSX1NFQ1JFVFNfSlNPTlwiLFxuXHRcdFx0e30sXG5cdFx0KTtcblx0XHRjb25zdCBlbnZUYWdzID0gdGhpcy5wYXJzZUpzb25FbnY8c3RyaW5nW10+KFwiRk9SR0VfRE9DS0VSX0VYVFJBX1RBR1NfSlNPTlwiLCBbXSk7XG5cblx0XHRjb25zdCBpbWFnZSA9IGRvY2tlckNvbmZpZy5pbWFnZSA/PyB0aGlzLmRlZmF1bHRJbWFnZU5hbWUocHJvamVjdC5uYW1lKTtcblx0XHRjb25zdCBkb2NrZXJmaWxlID0gZG9ja2VyQ29uZmlnLmRvY2tlcmZpbGUgPz8gXCJEb2NrZXJmaWxlXCI7XG5cdFx0Y29uc3QgdGFncyA9IFtgJHtpbWFnZX06JHt2ZXJzaW9ufWAsIC4uLihkb2NrZXJDb25maWcudGFncyA/PyBbXSksIC4uLmVudlRhZ3NdO1xuXHRcdGNvbnN0IGJ1aWxkQXJncyA9IHRoaXMuaW50ZXJwb2xhdGVCdWlsZEFyZ3MoXG5cdFx0XHR7IC4uLihkb2NrZXJDb25maWcuYnVpbGRBcmdzID8/IHt9KSwgLi4uZW52QnVpbGRBcmdzIH0sXG5cdFx0XHR2ZXJzaW9uLFxuXHRcdCk7XG5cdFx0Y29uc3Qgc2VjcmV0cyA9IHsgLi4uKGRvY2tlckNvbmZpZy5zZWNyZXRzID8/IHt9KSwgLi4uZW52U2VjcmV0cyB9O1xuXG5cdFx0dGhpcy4jbG9nZ2VyLmluZm8oYCR7b3B0aW9ucy5kcnlSdW4gPyBcIltkcnktcnVuXSBcIiA6IFwiXCJ9QnVpbGRpbmcgJHtwcm9qZWN0Lm5hbWV9YCk7XG5cdFx0dHJ5IHtcblx0XHRcdGlmICghb3B0aW9ucy5kcnlSdW4pIHtcblx0XHRcdFx0YXdhaXQgdGhpcy5kb2NrZXIuYnVpbGQocHJvamVjdC5wcm9qZWN0Um9vdCwge1xuXHRcdFx0XHRcdGN3ZDogcHJvamVjdC5wcm9qZWN0Um9vdCxcblx0XHRcdFx0XHRkb2NrZXJmaWxlOiBwYXRoLmpvaW4ocHJvamVjdC5wcm9qZWN0Um9vdCwgZG9ja2VyZmlsZSksXG5cdFx0XHRcdFx0dGFncyxcblx0XHRcdFx0XHRidWlsZEFyZ3MsXG5cdFx0XHRcdFx0c2VjcmV0cyxcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0aWYgKG9wdGlvbnMucHVzaCB8fCBkb2NrZXJDb25maWcucHVzaCkge1xuXHRcdFx0XHRcdGZvciAoY29uc3QgdGFnIG9mIHRhZ3MpIHtcblx0XHRcdFx0XHRcdGF3YWl0IHRoaXMuZG9ja2VyLnB1c2godGFnLCB7IGN3ZDogcHJvamVjdC5wcm9qZWN0Um9vdCB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0cHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcblx0XHRcdFx0aW1hZ2UsXG5cdFx0XHRcdHRhZ3MsXG5cdFx0XHRcdHN1Y2NlZWRlZDogdHJ1ZSxcblx0XHRcdFx0bWVzc2FnZTogb3B0aW9ucy5kcnlSdW4gPyBcIkRyeSBydW5cIiA6IGBCdWlsdCAke2ltYWdlfWAsXG5cdFx0XHR9O1xuXHRcdH0gY2F0Y2ggKHJlYXNvbikge1xuXHRcdFx0Y29uc3QgbWVzc2FnZSA9IGZvcm1hdFVua25vd25FcnJvcihyZWFzb24pO1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0cHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcblx0XHRcdFx0aW1hZ2UsXG5cdFx0XHRcdHRhZ3MsXG5cdFx0XHRcdHN1Y2NlZWRlZDogZmFsc2UsXG5cdFx0XHRcdG1lc3NhZ2UsXG5cdFx0XHRcdGVycm9yOiBgJHtwcm9qZWN0Lm5hbWV9OiAke21lc3NhZ2V9YCxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBpbnRlcnBvbGF0ZUJ1aWxkQXJncyhcblx0XHRidWlsZEFyZ3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQsXG5cdFx0dmVyc2lvbjogc3RyaW5nLFxuXHQpIHtcblx0XHRjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblx0XHRjb25zdCB2ZXJzaW9uUGxhY2Vob2xkZXIgPSBcIiRcIiArIFwie3ZlcnNpb259XCI7XG5cdFx0Zm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYnVpbGRBcmdzID8/IHt9KSkge1xuXHRcdFx0cmVzdWx0W2tleV0gPSB2YWx1ZS5zcGxpdCh2ZXJzaW9uUGxhY2Vob2xkZXIpLmpvaW4odmVyc2lvbik7XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRwcml2YXRlIGRlZmF1bHRJbWFnZU5hbWUocHJvamVjdE5hbWU6IHN0cmluZykge1xuXHRcdHJldHVybiBgJHt0aGlzLiNkZWZhdWx0UmVnaXN0cnl9LyR7dGhpcy5ub3JtYWxpemVEb2NrZXJSZXBvc2l0b3J5KHByb2plY3ROYW1lKX1gO1xuXHR9XG5cblx0cHJpdmF0ZSBub3JtYWxpemVEb2NrZXJSZXBvc2l0b3J5KG5hbWU6IHN0cmluZykge1xuXHRcdGNvbnN0IHJlcG9zaXRvcnkgPSBuYW1lXG5cdFx0XHQucmVwbGFjZSgvXkAvLCBcIlwiKVxuXHRcdFx0LnNwbGl0KFwiL1wiKVxuXHRcdFx0Lm1hcCgoc2VnbWVudCkgPT5cblx0XHRcdFx0c2VnbWVudFxuXHRcdFx0XHRcdC50b0xvd2VyQ2FzZSgpXG5cdFx0XHRcdFx0LnJlcGxhY2UoL1teYS16MC05XSsvZywgXCItXCIpXG5cdFx0XHRcdFx0LnJlcGxhY2UoL14tK3wtKyQvZywgXCJcIiksXG5cdFx0XHQpXG5cdFx0XHQuZmlsdGVyKEJvb2xlYW4pXG5cdFx0XHQuam9pbihcIi9cIik7XG5cblx0XHRpZiAocmVwb3NpdG9yeSA9PT0gXCJcIikge1xuXHRcdFx0dGhyb3cgbmV3IEZvcmdlRXJyb3IoYENvdWxkIG5vdCBkZXJpdmUgYSBEb2NrZXIgcmVwb3NpdG9yeSBmcm9tIHByb2plY3QgbmFtZSBcIiR7bmFtZX1cImApO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXBvc2l0b3J5O1xuXHR9XG5cblx0cHJpdmF0ZSBwYXJzZUpzb25FbnY8VD4obmFtZTogc3RyaW5nLCBmYWxsYmFjazogVCk6IFQge1xuXHRcdGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV07XG5cdFx0aWYgKHZhbHVlID09IG51bGwgfHwgdmFsdWUudHJpbSgpID09PSBcIlwiKSB7XG5cdFx0XHRyZXR1cm4gZmFsbGJhY2s7XG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBKU09OLnBhcnNlKHZhbHVlKSBhcyBUO1xuXHRcdH0gY2F0Y2ggKHJlYXNvbikge1xuXHRcdFx0dGhyb3cgbmV3IEZvcmdlRXJyb3IoYEludmFsaWQgSlNPTiBpbiAke25hbWV9OiAke2Zvcm1hdFVua25vd25FcnJvcihyZWFzb24pfWApO1xuXHRcdH1cblx0fVxufVxuIl0sIm5hbWVzIjpbInBhdGgiLCJpbmplY3RhYmxlIiwiV29ya3NwYWNlIiwiQWN0aW9uUmVzcG9uc2UiLCJEb2NrZXIiLCJEb2NrZXJJbnRlcm9wIiwiaW8iLCJzY3JpYmUiLCJGb3JnZUVycm9yIiwiZm9ybWF0VW5rbm93bkVycm9yIiwibG9nZ2VyIiwibmFtZSIsImRvY2tlciIsInByb2Nlc3MiLCJlbnYiLCJGT1JHRV9ET0NLRVJfUkVHSVNUUlkiLCJ0cmltIiwid29ya3NwYWNlIiwicnVuIiwib3B0aW9ucyIsInByb2plY3RzIiwiZ2V0RG9ja2VyUHJvamVjdHMiLCJnZXRQcm9qZWN0cyIsImNvbmZpZ3VyYXRpb24iLCJsZW5ndGgiLCJ2ZXJzaW9uIiwiZ2V0VmVyc2lvbiIsInJlc3BvbnNlcyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJwcm9qZWN0IiwiYnVpbGRQcm9qZWN0IiwiZmFpbGVkIiwiZmlsdGVyIiwicmVzcG9uc2UiLCJzdWNjZWVkZWQiLCJFcnJvciIsIlN1Y2Nlc3MiLCJyZXN1bHQiLCJkb2NrZXJmaWxlIiwiZG9ja2VyQ29uZmlnIiwiZG9ja2VyZmlsZVBhdGgiLCJqb2luIiwicHJvamVjdFJvb3QiLCJmaWxlRXhpc3RzIiwiaW5mbyIsInB1c2giLCJlbnZCdWlsZEFyZ3MiLCJwYXJzZUpzb25FbnYiLCJlbnZTZWNyZXRzIiwiZW52VGFncyIsImltYWdlIiwiZGVmYXVsdEltYWdlTmFtZSIsInRhZ3MiLCJidWlsZEFyZ3MiLCJpbnRlcnBvbGF0ZUJ1aWxkQXJncyIsInNlY3JldHMiLCJkcnlSdW4iLCJidWlsZCIsImN3ZCIsInRhZyIsInByb2plY3ROYW1lIiwibWVzc2FnZSIsInJlYXNvbiIsImVycm9yIiwidmVyc2lvblBsYWNlaG9sZGVyIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIiwic3BsaXQiLCJub3JtYWxpemVEb2NrZXJSZXBvc2l0b3J5IiwicmVwb3NpdG9yeSIsInJlcGxhY2UiLCJzZWdtZW50IiwidG9Mb3dlckNhc2UiLCJCb29sZWFuIiwiZmFsbGJhY2siLCJKU09OIiwicGFyc2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU9BLFVBQVUsWUFBWTtBQUM3QixTQUFTQyxVQUFVLFFBQVEsZ0NBQWdDO0FBRTNELDhDQUE4QztBQUM5QyxTQUFTQyxTQUFTLFFBQVEsaUJBQWlCO0FBRTNDLFNBQVNDLGNBQWMsUUFBUSxzQkFBc0I7QUFDckQsU0FBU0MsVUFBVUMsYUFBYSxRQUFRLDBCQUEwQjtBQUNsRSxTQUFTQyxFQUFFLFFBQVEscUJBQXFCO0FBQ3hDLFNBQVNDLE1BQU0sUUFBUSxtQkFBbUI7QUFDMUMsU0FBU0MsVUFBVSxFQUFFQyxrQkFBa0IsUUFBUSxlQUFlO0FBZ0I5RCxPQUFPLE1BQU1MOztJQUNaLENBQUEsTUFBTyxHQUFHRyxPQUFPRyxNQUFNLENBQUNOLE9BQU9PLElB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
|
package/es6/src/actions/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from "./commit.action.js";
|
|
|
4
4
|
export * from "./copy.action.js";
|
|
5
5
|
export * from "./dependency-report.action.js";
|
|
6
6
|
export * from "./dependency-sync.action.js";
|
|
7
|
+
export * from "./docker.action.js";
|
|
7
8
|
export * from "./link.action.js";
|
|
8
9
|
export * from "./publish.action.js";
|
|
9
10
|
export * from "./sync-lock-file.action.js";
|
|
@@ -12,4 +13,4 @@ export * from "./unlink.action.js";
|
|
|
12
13
|
export * from "./version.action.js";
|
|
13
14
|
export * from "./watch.action.js";
|
|
14
15
|
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9hY3Rpb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2J1aWxkLmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2xlYW4uYWN0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21taXQuYWN0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb3B5LmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVwZW5kZW5jeS1yZXBvcnQuYWN0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZXBlbmRlbmN5LXN5bmMuYWN0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kb2NrZXIuYWN0aW9uLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saW5rLmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHVibGlzaC5hY3Rpb24uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N5bmMtbG9jay1maWxlLmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFnLmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdW5saW5rLmFjdGlvbi5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmVyc2lvbi5hY3Rpb24uanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3dhdGNoLmFjdGlvbi5qc1wiO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CO0FBQ2xDLGNBQWMsb0JBQW9CO0FBQ2xDLGNBQWMscUJBQXFCO0FBQ25DLGNBQWMsbUJBQW1CO0FBQ2pDLGNBQWMsZ0NBQWdDO0FBQzlDLGNBQWMsOEJBQThCO0FBQzVDLGNBQWMscUJBQXFCO0FBQ25DLGNBQWMsbUJBQW1CO0FBQ2pDLGNBQWMsc0JBQXNCO0FBQ3BDLGNBQWMsNkJBQTZCO0FBQzNDLGNBQWMsa0JBQWtCO0FBQ2hDLGNBQWMscUJBQXFCO0FBQ25DLGNBQWMsc0JBQXNCO0FBQ3BDLGNBQWMsb0JBQW9CIn0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ConfigurationOption, DecohereCommand, DryRunOption } from "@decohere/nexus/cli";
|
|
2
|
+
import { Docker } from "../actions/docker.action.js";
|
|
3
|
+
export class DockerCommand extends DecohereCommand {
|
|
4
|
+
get actions() {
|
|
5
|
+
return [
|
|
6
|
+
Docker
|
|
7
|
+
];
|
|
8
|
+
}
|
|
9
|
+
constructor(name){
|
|
10
|
+
super(name);
|
|
11
|
+
this.description("Build Docker images for workspace projects");
|
|
12
|
+
this.addOption(new ConfigurationOption("release"));
|
|
13
|
+
this.addOption(new DryRunOption("Run docker build without executing it"));
|
|
14
|
+
this.option("--push", "Push built images after a successful build", false);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9jb21tYW5kcy9kb2NrZXIuY29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWd1cmF0aW9uT3B0aW9uLCBEZWNvaGVyZUNvbW1hbmQsIERyeVJ1bk9wdGlvbiB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2xpXCI7XG5pbXBvcnQgeyBEb2NrZXIgfSBmcm9tIFwiLi4vYWN0aW9ucy9kb2NrZXIuYWN0aW9uLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBEb2NrZXJDb21tYW5kIGV4dGVuZHMgRGVjb2hlcmVDb21tYW5kIHtcblx0cHVibGljIG92ZXJyaWRlIGdldCBhY3Rpb25zKCkge1xuXHRcdHJldHVybiBbRG9ja2VyXTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcblx0XHRzdXBlcihuYW1lKTtcblx0XHR0aGlzLmRlc2NyaXB0aW9uKFwiQnVpbGQgRG9ja2VyIGltYWdlcyBmb3Igd29ya3NwYWNlIHByb2plY3RzXCIpO1xuXHRcdHRoaXMuYWRkT3B0aW9uKG5ldyBDb25maWd1cmF0aW9uT3B0aW9uKFwicmVsZWFzZVwiKSk7XG5cdFx0dGhpcy5hZGRPcHRpb24obmV3IERyeVJ1bk9wdGlvbihcIlJ1biBkb2NrZXIgYnVpbGQgd2l0aG91dCBleGVjdXRpbmcgaXRcIikpO1xuXHRcdHRoaXMub3B0aW9uKFwiLS1wdXNoXCIsIFwiUHVzaCBidWlsdCBpbWFnZXMgYWZ0ZXIgYSBzdWNjZXNzZnVsIGJ1aWxkXCIsIGZhbHNlKTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkNvbmZpZ3VyYXRpb25PcHRpb24iLCJEZWNvaGVyZUNvbW1hbmQiLCJEcnlSdW5PcHRpb24iLCJEb2NrZXIiLCJEb2NrZXJDb21tYW5kIiwiYWN0aW9ucyIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImFkZE9wdGlvbiIsIm9wdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsbUJBQW1CLEVBQUVDLGVBQWUsRUFBRUMsWUFBWSxRQUFRLHNCQUFzQjtBQUN6RixTQUFTQyxNQUFNLFFBQVEsOEJBQThCO0FBRXJELE9BQU8sTUFBTUMsc0JBQXNCSDtJQUNsQyxJQUFvQkksVUFBVTtRQUM3QixPQUFPO1lBQUNGO1NBQU87SUFDaEI7SUFFQSxZQUFtQkcsSUFBWSxDQUFFO1FBQ2hDLEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUNDLFdBQVcsQ0FBQztRQUNqQixJQUFJLENBQUNDLFNBQVMsQ0FBQyxJQUFJUixvQkFBb0I7UUFDdkMsSUFBSSxDQUFDUSxTQUFTLENBQUMsSUFBSU4sYUFBYTtRQUNoQyxJQUFJLENBQUNPLE1BQU0sQ0FBQyxVQUFVLDhDQUE4QztJQUNyRTtBQUNEIn0=
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export * from "./build.command.js";
|
|
2
2
|
export * from "./dependency.command.js";
|
|
3
|
+
export * from "./docker.command.js";
|
|
3
4
|
export * from "./forge.command.js";
|
|
4
5
|
export * from "./link.command.js";
|
|
5
6
|
export * from "./publish.command.js";
|
|
6
7
|
export * from "./tag.command.js";
|
|
7
8
|
export * from "./version.command.js";
|
|
8
9
|
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9jb21tYW5kcy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9idWlsZC5jb21tYW5kLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZXBlbmRlbmN5LmNvbW1hbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RvY2tlci5jb21tYW5kLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3JnZS5jb21tYW5kLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saW5rLmNvbW1hbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3B1Ymxpc2guY29tbWFuZC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFnLmNvbW1hbmQuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZlcnNpb24uY29tbWFuZC5qc1wiO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCO0FBQ25DLGNBQWMsMEJBQTBCO0FBQ3hDLGNBQWMsc0JBQXNCO0FBQ3BDLGNBQWMscUJBQXFCO0FBQ25DLGNBQWMsb0JBQW9CO0FBQ2xDLGNBQWMsdUJBQXVCO0FBQ3JDLGNBQWMsbUJBQW1CO0FBQ2pDLGNBQWMsdUJBQXVCIn0=
|
package/es6/src/forge.module.js
CHANGED
|
@@ -14,6 +14,7 @@ export class ForgeModule extends ModuleManifest {
|
|
|
14
14
|
actions = {
|
|
15
15
|
clean: Actions.Clean,
|
|
16
16
|
copy: Actions.Copy,
|
|
17
|
+
docker: Actions.Docker,
|
|
17
18
|
build: Actions.Build,
|
|
18
19
|
watch: Actions.Watch,
|
|
19
20
|
publish: Actions.Publish,
|
|
@@ -30,6 +31,7 @@ export class ForgeModule extends ModuleManifest {
|
|
|
30
31
|
build: Commands.BuildCommand,
|
|
31
32
|
publish: Commands.PublishCommand,
|
|
32
33
|
dependencies: Commands.DependencyCommand,
|
|
34
|
+
docker: Commands.DockerCommand,
|
|
33
35
|
version: Commands.VersionCommand,
|
|
34
36
|
tag: Commands.TagCommand,
|
|
35
37
|
link: Commands.LinkCommand,
|
|
@@ -59,4 +61,4 @@ export class ForgeModule extends ModuleManifest {
|
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
63
|
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9mb3JnZS5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlckNvbmZpZ0ZhY3RvcnksIFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHsgTW9kdWxlTWFuaWZlc3QgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHR5cGUgeyBDb250YWluZXJCdWlsZGVyIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jb21wb3NpdGlvblwiO1xuaW1wb3J0ICogYXMgQWN0aW9ucyBmcm9tIFwiLi9hY3Rpb25zL2luZGV4LmpzXCI7XG5pbXBvcnQgKiBhcyBDb21tYW5kcyBmcm9tIFwiLi9jb21tYW5kcy9pbmRleC5qc1wiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVJlc29sdmVyIH0gZnJvbSBcIi4vc2VydmljZXMvZGVwZW5kZW5jeS1yZXNvbHZlci5zZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBGaWxlV3JpdGVyU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL2ZpbGUtd3JpdGVyLnNlcnZpY2UuanNcIjtcbmltcG9ydCB7IFN3Y1RyYW5zcGlsZXIgfSBmcm9tIFwiLi9zZXJ2aWNlcy9zd2MtdHJhbnNwaWxlci5qc1wiO1xuaW1wb3J0IHsgVHlwZUVtaXR0ZXIgfSBmcm9tIFwiLi9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIuanNcIjtcbmltcG9ydCB7IFRyYW5zZm9ybWVyS2V5IH0gZnJvbSBcIi4vdHlwZXMvdHJhbnNmb3JtZXIudHlwZS5qc1wiO1xuaW1wb3J0IHsgRGVmYXVsdENvbmZpZ3VyYXRpb25zLCBXb3Jrc3BhY2VEZWZhdWx0cyB9IGZyb20gXCIuL3dvcmtzcGFjZS5jb25maWcuanNcIjtcblxuZXhwb3J0IGNsYXNzIEZvcmdlTW9kdWxlIGV4dGVuZHMgTW9kdWxlTWFuaWZlc3Qge1xuXHRwdWJsaWMgcmVhZG9ubHkgaWQgPSBcImZvcmdlXCI7XG5cdHB1YmxpYyByZWFkb25seSBjb21tYW5kID0gQ29tbWFuZHMuRm9yZ2VDb21tYW5kO1xuXHRwdWJsaWMgcmVhZG9ubHkgYWN0aW9ucyA9IHtcblx0XHRjbGVhbjogQWN0aW9ucy5DbGVhbixcblx0XHRjb3B5OiBBY3Rpb25zLkNvcHksXG5cdFx0ZG9ja2VyOiBBY3Rpb25zLkRvY2tlcixcblx0XHRidWlsZDogQWN0aW9ucy5CdWlsZCxcblx0XHR3YXRjaDogQWN0aW9ucy5XYXRjaCxcblx0XHRwdWJsaXNoOiBBY3Rpb25zLlB1Ymxpc2gsXG5cdFx0c3luY0RlcGVuZGVuY2llczogQWN0aW9ucy5TeW5jRGVwZW5kZW5jaWVzLFxuXHRcdHN5bmNMb2NrRmlsZTogQWN0aW9ucy5TeW5jTG9ja0ZpbGUsXG5cdFx0cmVwb3J0RGVwZW5kZW5jaWVzOiBBY3Rpb25zLlJlcG9ydERlcGVuZGVuY2llcyxcblx0XHR2ZXJzaW9uOiBBY3Rpb25zLlZlcnNpb24sXG5cdFx0dGFnOiBBY3Rpb25zLlRhZyxcblx0XHRjb21taXRGaWxlczogQWN0aW9ucy5Db21taXRGaWxlcyxcblx0XHRsaW5rOiBBY3Rpb25zLkxpbmssXG5cdFx0dW5saW5rOiBBY3Rpb25zLlVubGluayxcblx0fTtcblx0cHVibGljIHJlYWRvbmx5IGNvbW1hbmRzID0ge1xuXHRcdGJ1aWxkOiBDb21tYW5kcy5CdWlsZENvbW1hbmQsXG5cdFx0cHVibGlzaDogQ29tbWFuZHMuUHVibGlzaENvbW1hbmQsXG5cdFx0ZGVwZW5kZW5jaWVzOiBDb21tYW5kcy5EZXBlbmRlbmN5Q29tbWFuZCxcblx0XHRkb2NrZXI6IENvbW1hbmRzLkRvY2tlckNvbW1hbmQsXG5cdFx0dmVyc2lvbjogQ29tbWFuZHMuVmVyc2lvbkNvbW1hbmQsXG5cdFx0dGFnOiBDb21tYW5kcy5UYWdDb21tYW5kLFxuXHRcdGxpbms6IENvbW1hbmRzLkxpbmtDb21tYW5kLFxuXHRcdHVubGluazogQ29tbWFuZHMuVW5saW5rQ29tbWFuZCxcblx0fTtcblxuXHRwdWJsaWMgcmVnaXN0ZXJTZXJ2aWNlcyhidWlsZGVyOiBDb250YWluZXJCdWlsZGVyKSB7XG5cdFx0YnVpbGRlci5yZWdpc3RlclNpbmdsZXRvbihUcmFuc2Zvcm1lcktleSwgU3djVHJhbnNwaWxlcik7XG5cdFx0YnVpbGRlci5yZWdpc3RlclNpbmdsZXRvbihUcmFuc2Zvcm1lcktleSwgVHlwZUVtaXR0ZXIpO1xuXHRcdGJ1aWxkZXIucmVnaXN0ZXJTaW5nbGV0b24oRGVwZW5kZW5jeVJlc29sdmVyKTtcblx0XHRidWlsZGVyLnJlZ2lzdGVyU2luZ2xldG9uKEZpbGVXcml0ZXJTZXJ2aWNlKTtcblx0fVxuXG5cdHB1YmxpYyBvdmVycmlkZSBhc3luYyBjcmVhdGVXb3Jrc3BhY2Uob3B0aW9uczogV29ya3NwYWNlRmFjdG9yeU9wdGlvbnMpIHtcblx0XHRjb25zdCB7IGNvbmZpZ3VyYXRpb25zOiBfLCAuLi5mb3JnZURlZmF1bHRzIH0gPSBXb3Jrc3BhY2VEZWZhdWx0cztcblx0XHRjb25zdCB1c2VyQ29uZmlnID0gYXdhaXQgVXNlckNvbmZpZ0ZhY3RvcnkuZ2V0VXNlckNvbmZpZyhvcHRpb25zLmNvbmZpZ0ZpbGUpO1xuXHRcdC8vIE9ubHkgYXBwbHkgZm9yZ2UgZGVmYXVsdCBjb25maWd1cmF0aW9ucyB3aGVuIHVzZXIgY29uZmlnIGRvZXNuJ3QgcHJvdmlkZSBhbnkuXG5cdFx0Ly8gVGhpcyBlbnN1cmVzIHVzZXItZGVmaW5lZCBjb25maWd1cmF0aW9ucyB0YWtlIHByaW9yaXR5IHdoaWxlIHN0aWxsIHByb3ZpZGluZ1xuXHRcdC8vIHNlbnNpYmxlIGRlZmF1bHRzIChkZWJ1ZyArIHJlbGVhc2UpIHdoZW4gbm8gY29uZmlnIGZpbGUgaXMgcHJlc2VudC5cblx0XHRjb25zdCBjb25maWd1cmF0aW9ucyA9IHVzZXJDb25maWcuY29uZmlndXJhdGlvbnM/Lmxlbmd0aFxuXHRcdFx0PyB1bmRlZmluZWRcblx0XHRcdDogRGVmYXVsdENvbmZpZ3VyYXRpb25zO1xuXHRcdHJldHVybiBXb3Jrc3BhY2VGYWN0b3J5LmNyZWF0ZSh7XG5cdFx0XHQuLi5mb3JnZURlZmF1bHRzLFxuXHRcdFx0Li4uKGNvbmZpZ3VyYXRpb25zID8geyBjb25maWd1cmF0aW9ucyB9IDoge30pLFxuXHRcdFx0Y29uZmlnRmlsZTogb3B0aW9ucy5jb25maWdGaWxlLFxuXHRcdFx0cm9vdERpcjogb3B0aW9ucy5yb290RGlyID8/IFdvcmtzcGFjZURlZmF1bHRzLnJvb3REaXIsXG5cdFx0fSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJVc2VyQ29uZmlnRmFjdG9yeSIsIldvcmtzcGFjZUZhY3RvcnkiLCJNb2R1bGVNYW5pZmVzdCIsIkFjdGlvbnMiLCJDb21tYW5kcyIsIkRlcGVuZGVuY3lSZXNvbHZlciIsIkZpbGVXcml0ZXJTZXJ2aWNlIiwiU3djVHJhbnNwaWxlciIsIlR5cGVFbWl0dGVyIiwiVHJhbnNmb3JtZXJLZXkiLCJEZWZhdWx0Q29uZmlndXJhdGlvbnMiLCJXb3Jrc3BhY2VEZWZhdWx0cyIsIkZvcmdlTW9kdWxlIiwiaWQiLCJjb21tYW5kIiwiRm9yZ2VDb21tYW5kIiwiYWN0aW9ucyIsImNsZWFuIiwiQ2xlYW4iLCJjb3B5IiwiQ29weSIsImRvY2tlciIsIkRvY2tlciIsImJ1aWxkIiwiQnVpbGQiLCJ3YXRjaCIsIldhdGNoIiwicHVibGlzaCIsIlB1Ymxpc2giLCJzeW5jRGVwZW5kZW5jaWVzIiwiU3luY0RlcGVuZGVuY2llcyIsInN5bmNMb2NrRmlsZSIsIlN5bmNMb2NrRmlsZSIsInJlcG9ydERlcGVuZGVuY2llcyIsIlJlcG9ydERlcGVuZGVuY2llcyIsInZlcnNpb24iLCJWZXJzaW9uIiwidGFnIiwiVGFnIiwiY29tbWl0RmlsZXMiLCJDb21taXRGaWxlcyIsImxpbmsiLCJMaW5rIiwidW5saW5rIiwiVW5saW5rIiwiY29tbWFuZHMiLCJCdWlsZENvbW1hbmQiLCJQdWJsaXNoQ29tbWFuZCIsImRlcGVuZGVuY2llcyIsIkRlcGVuZGVuY3lDb21tYW5kIiwiRG9ja2VyQ29tbWFuZCIsIlZlcnNpb25Db21tYW5kIiwiVGFnQ29tbWFuZCIsIkxpbmtDb21tYW5kIiwiVW5saW5rQ29tbWFuZCIsInJlZ2lzdGVyU2VydmljZXMiLCJidWlsZGVyIiwicmVnaXN0ZXJTaW5nbGV0b24iLCJjcmVhdGVXb3Jrc3BhY2UiLCJvcHRpb25zIiwiY29uZmlndXJhdGlvbnMiLCJfIiwiZm9yZ2VEZWZhdWx0cyIsInVzZXJDb25maWciLCJnZXRVc2VyQ29uZmlnIiwiY29uZmlnRmlsZSIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNyZWF0ZSIsInJvb3REaXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGlCQUFpQixFQUFFQyxnQkFBZ0IsUUFBUSxpQkFBaUI7QUFFckUsU0FBU0MsY0FBYyxRQUFRLHNCQUFzQjtBQUVyRCxZQUFZQyxhQUFhLHFCQUFxQjtBQUM5QyxZQUFZQyxjQUFjLHNCQUFzQjtBQUNoRCxTQUFTQyxrQkFBa0IsUUFBUSw0Q0FBNEM7QUFDL0UsU0FBU0MsaUJBQWlCLFFBQVEsb0NBQW9DO0FBQ3RFLFNBQVNDLGFBQWEsUUFBUSwrQkFBK0I7QUFDN0QsU0FBU0MsV0FBVyxRQUFRLDZCQUE2QjtBQUN6RCxTQUFTQyxjQUFjLFFBQVEsOEJBQThCO0FBQzdELFNBQVNDLHFCQUFxQixFQUFFQyxpQkFBaUIsUUFBUSx3QkFBd0I7QUFFakYsT0FBTyxNQUFNQyxvQkFBb0JWO0lBQ2hCVyxLQUFLLFFBQVE7SUFDYkMsVUFBVVYsU0FBU1csWUFBWSxDQUFDO0lBQ2hDQyxVQUFVO1FBQ3pCQyxPQUFPZCxRQUFRZSxLQUFLO1FBQ3BCQyxNQUFNaEIsUUFBUWlCLElBQUk7UUFDbEJDLFFBQVFsQixRQUFRbUIsTUFBTTtRQUN0QkMsT0FBT3BCLFFBQVFxQixLQUFLO1FBQ3BCQyxPQUFPdEIsUUFBUXVCLEtBQUs7UUFDcEJDLFNBQVN4QixRQUFReUIsT0FBTztRQUN4QkMsa0JBQWtCMUIsUUFBUTJCLGdCQUFnQjtRQUMxQ0MsY0FBYzVCLFFBQVE2QixZQUFZO1FBQ2xDQyxvQkFBb0I5QixRQUFRK0Isa0JBQWtCO1FBQzlDQyxTQUFTaEMsUUFBUWlDLE9BQU87UUFDeEJDLEtBQUtsQyxRQUFRbUMsR0FBRztRQUNoQkMsYUFBYXBDLFFBQVFxQyxXQUFXO1FBQ2hDQyxNQUFNdEMsUUFBUXVDLElBQUk7UUFDbEJDLFFBQVF4QyxRQUFReUMsTUFBTTtJQUN2QixFQUFFO0lBQ2NDLFdBQVc7UUFDMUJ0QixPQUFPbkIsU0FBUzBDLFlBQVk7UUFDNUJuQixTQUFTdkIsU0FBUzJDLGNBQWM7UUFDaENDLGNBQWM1QyxTQUFTNkMsaUJBQWlCO1FBQ3hDNUIsUUFBUWpCLFNBQVM4QyxhQUFhO1FBQzlCZixTQUFTL0IsU0FBUytDLGNBQWM7UUFDaENkLEtBQUtqQyxTQUFTZ0QsVUFBVTtRQUN4QlgsTUFBTXJDLFNBQVNpRCxXQUFXO1FBQzFCVixRQUFRdkMsU0FBU2tELGFBQWE7SUFDL0IsRUFBRTtJQUVLQyxpQkFBaUJDLE9BQXlCLEVBQUU7UUFDbERBLFFBQVFDLGlCQUFpQixDQUFDaEQsZ0JBQWdCRjtRQUMxQ2lELFFBQVFDLGlCQUFpQixDQUFDaEQsZ0JBQWdCRDtRQUMxQ2dELFFBQVFDLGlCQUFpQixDQUFDcEQ7UUFDMUJtRCxRQUFRQyxpQkFBaUIsQ0FBQ25EO0lBQzNCO0lBRUEsTUFBc0JvRCxnQkFBZ0JDLE9BQWdDLEVBQUU7UUFDdkUsTUFBTSxFQUFFQyxnQkFBZ0JDLENBQUMsRUFBRSxHQUFHQyxlQUFlLEdBQUduRDtRQUNoRCxNQUFNb0QsYUFBYSxNQUFNL0Qsa0JBQWtCZ0UsYUFBYSxDQUFDTCxRQUFRTSxVQUFVO1FBQzNFLGdGQUFnRjtRQUNoRiwrRUFBK0U7UUFDL0Usc0VBQXNFO1FBQ3RFLE1BQU1MLGlCQUFpQkcsV0FBV0gsY0FBYyxFQUFFTSxTQUMvQ0MsWUFDQXpEO1FBQ0gsT0FBT1QsaUJBQWlCbUUsTUFBTSxDQUFDO1lBQzlCLEdBQUdOLGFBQWE7WUFDaEIsR0FBSUYsaUJBQWlCO2dCQUFFQTtZQUFlLElBQUksQ0FBQyxDQUFDO1lBQzVDSyxZQUFZTixRQUFRTSxVQUFVO1lBQzlCSSxTQUFTVixRQUFRVSxPQUFPLElBQUkxRCxrQkFBa0IwRCxPQUFPO1FBQ3REO0lBQ0Q7QUFDRCJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decohere/forge",
|
|
3
|
-
"version": "0.0.1-dev.
|
|
3
|
+
"version": "0.0.1-dev.21",
|
|
4
4
|
"description": "TypeScript monorepo build system — zero config, fast compilation, streamlined developer workflow",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@decohere/crucible": "0.0.1-dev.
|
|
33
|
-
"@decohere/mesh": "0.0.1-dev.
|
|
34
|
-
"@decohere/nexus": "0.0.1-dev.
|
|
35
|
-
"@decohere/scribe": "0.0.1-dev.
|
|
32
|
+
"@decohere/crucible": "0.0.1-dev.21",
|
|
33
|
+
"@decohere/mesh": "0.0.1-dev.21",
|
|
34
|
+
"@decohere/nexus": "0.0.1-dev.21",
|
|
35
|
+
"@decohere/scribe": "0.0.1-dev.21",
|
|
36
36
|
"@swc/core": "^1.11.11",
|
|
37
37
|
"async": "^3.2.6",
|
|
38
38
|
"parse-imports": "^2.2.1",
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Workspace } from "@decohere/mesh";
|
|
2
|
+
import type { Action, ResultStatus } from "@decohere/nexus/cli";
|
|
3
|
+
import { ActionResponse } from "@decohere/nexus/cli";
|
|
4
|
+
export type DockerOptions = {
|
|
5
|
+
configuration: string;
|
|
6
|
+
dryRun?: boolean;
|
|
7
|
+
push?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type DockerResponse = ResultStatus & {
|
|
10
|
+
projectName: string;
|
|
11
|
+
image: string;
|
|
12
|
+
tags: string[];
|
|
13
|
+
message: string;
|
|
14
|
+
};
|
|
15
|
+
export declare class Docker implements Action<DockerOptions> {
|
|
16
|
+
#private;
|
|
17
|
+
private readonly workspace;
|
|
18
|
+
private readonly docker;
|
|
19
|
+
constructor(workspace: Workspace);
|
|
20
|
+
run(options: DockerOptions): Promise<ActionResponse<DockerResponse>>;
|
|
21
|
+
private getDockerProjects;
|
|
22
|
+
private buildProject;
|
|
23
|
+
private interpolateBuildArgs;
|
|
24
|
+
private defaultImageName;
|
|
25
|
+
private normalizeDockerRepository;
|
|
26
|
+
private parseJsonEnv;
|
|
27
|
+
}
|
|
@@ -4,6 +4,7 @@ export * from "./commit.action.js";
|
|
|
4
4
|
export * from "./copy.action.js";
|
|
5
5
|
export * from "./dependency-report.action.js";
|
|
6
6
|
export * from "./dependency-sync.action.js";
|
|
7
|
+
export * from "./docker.action.js";
|
|
7
8
|
export * from "./link.action.js";
|
|
8
9
|
export * from "./publish.action.js";
|
|
9
10
|
export * from "./sync-lock-file.action.js";
|
|
@@ -9,6 +9,7 @@ export declare class ForgeModule extends ModuleManifest {
|
|
|
9
9
|
readonly actions: {
|
|
10
10
|
clean: typeof Actions.Clean;
|
|
11
11
|
copy: typeof Actions.Copy;
|
|
12
|
+
docker: typeof Actions.Docker;
|
|
12
13
|
build: typeof Actions.Build;
|
|
13
14
|
watch: typeof Actions.Watch;
|
|
14
15
|
publish: typeof Actions.Publish;
|
|
@@ -25,6 +26,7 @@ export declare class ForgeModule extends ModuleManifest {
|
|
|
25
26
|
build: typeof Commands.BuildCommand;
|
|
26
27
|
publish: typeof Commands.PublishCommand;
|
|
27
28
|
dependencies: typeof Commands.DependencyCommand;
|
|
29
|
+
docker: typeof Commands.DockerCommand;
|
|
28
30
|
version: typeof Commands.VersionCommand;
|
|
29
31
|
tag: typeof Commands.TagCommand;
|
|
30
32
|
link: typeof Commands.LinkCommand;
|