@sebbo2002/semantic-release-docker 4.0.2-develop.3 → 4.0.3-develop.1
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/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +14 -14
package/dist/index.d.ts
CHANGED
|
@@ -52,4 +52,4 @@ declare const _default: {
|
|
|
52
52
|
publish: typeof publish;
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
export { MajorAndMinorPart, NormalizedPluginConfig, NormalizedPluginConfigTags, PluginConfig, PluginConfigTagKeys, TagTask, copyImage, _default as default, exec, getBaseImage, getMajorAndMinorPart, getTagTasks, getUrlFromImage, isPreRelease, isRegCtlAvailable, parseConfig, publish, pushImage, tagImage };
|
|
55
|
+
export { type MajorAndMinorPart, type NormalizedPluginConfig, type NormalizedPluginConfigTags, type PluginConfig, type PluginConfigTagKeys, type TagTask, copyImage, _default as default, exec, getBaseImage, getMajorAndMinorPart, getTagTasks, getUrlFromImage, isPreRelease, isRegCtlAvailable, parseConfig, publish, pushImage, tagImage };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/index.ts"],"sourcesContent":["import { Context } from 'semantic-release';\nimport {\n MajorAndMinorPart,\n NormalizedPluginConfigTags,\n NormalizedPluginConfig,\n PluginConfig,\n PluginConfigTagKeys,\n TagTask,\n PublishResponse\n} from './types.js';\nimport { execa } from 'execa';\n\nexport {\n PluginConfig,\n NormalizedPluginConfigTags,\n NormalizedPluginConfig,\n PluginConfigTagKeys,\n MajorAndMinorPart,\n TagTask\n};\n\nlet IS_REGCTL_AVAILABLE: boolean | undefined= undefined;\n\nexport function parseConfig (config: PluginConfig): NormalizedPluginConfig {\n const result: NormalizedPluginConfig = {\n images: [],\n tag: {\n latest: true,\n major: true,\n minor: true,\n version: true,\n channel: true\n }\n };\n\n if (typeof config.images === 'string') {\n result.images.push(config.images);\n } else if (Array.isArray(config.images)) {\n config.images\n .filter(image => typeof image === 'string')\n .forEach(image => result.images.push(image));\n } else {\n throw new Error('Configuration invalid: No image defined!');\n }\n\n const tagNames = Object.keys(result.tag) as PluginConfigTagKeys[];\n tagNames.forEach(name => {\n const value = config.tag ? config.tag[name] : undefined;\n if (value === true || value === false) {\n result.tag[name] = value;\n }\n });\n\n return result;\n}\n\nexport function getBaseImage (input: string): string {\n let p = input.split('@')[0].split(':');\n\n // it's a \":port\"\n if (p[1] && p[1].includes('/')) {\n p = [p[0] + ':' + p[1], p[2]];\n }\n\n return p[0];\n}\n\nexport function isPreRelease (context: Context): boolean {\n return Boolean(context.nextRelease && context.nextRelease.version.includes('-'));\n}\n\nexport function getMajorAndMinorPart (version: string | undefined): MajorAndMinorPart {\n if (!version) {\n return {\n major: null,\n minor: null\n };\n }\n\n const parts = version.split('.', 2);\n return {\n major: parts[0],\n minor: parts[1]\n };\n}\n\nexport function getTagTasks (config: NormalizedPluginConfig, context: Context): TagTask[] {\n const result: TagTask[] = [];\n\n if (!context.nextRelease) {\n return [];\n }\n\n const version = context.nextRelease.version;\n config.images.forEach(input => {\n const outputBase = getBaseImage(input);\n\n // version\n if (config.tag.version && version) {\n result.push({\n input,\n output: `${outputBase}:${version}`\n });\n }\n\n if (!isPreRelease(context)) {\n const { major, minor } = getMajorAndMinorPart(version);\n\n // latest\n if (config.tag.latest) {\n result.push({\n input,\n output: `${outputBase}:latest`\n });\n }\n\n // major\n if (config.tag.major && major) {\n result.push({\n input,\n output: `${outputBase}:${major}`\n });\n }\n\n // minor\n if (config.tag.minor && major && minor) {\n result.push({\n input,\n output: `${outputBase}:${major}.${minor}`\n });\n }\n }\n\n // channel\n const channel = context.nextRelease?.channel;\n if (config.tag.channel && channel) {\n result.push({\n input,\n output: `${outputBase}:${channel}`\n });\n }\n });\n\n return result;\n}\n\nexport function getUrlFromImage (image: string): string | undefined {\n const parts = getBaseImage(image).split('/');\n if (parts[0] === 'ghcr.io' && parts.length === 3) {\n return `https://github.com/${parts[1]}/${parts[2]}/pkgs/container/${parts[2]}`;\n }\n if (parts[0] === 'registry.gitlab.com' && parts.length >= 3) {\n return `https://gitlab.com/${parts[1]}/${parts[2]}/container_registry`;\n }\n\n const couldBeAHostname = parts[0].includes('.');\n if (!couldBeAHostname && parts.length === 2) {\n return `https://hub.docker.com/r/${parts[0]}/${parts[1]}/tags`;\n }\n if (!couldBeAHostname && parts.length === 1) {\n return `https://hub.docker.com/_/${parts[0]}/tags`;\n }\n}\n\nexport async function exec (file: string, args: string[]): Promise<void> {\n try {\n await execa(file, args);\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'command' in error && 'message' in error) {\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n throw new Error(`Unable to run \"${error.command}\": ${error.message}`);\n } else {\n throw new Error(`Unable to run \"${args.join(' ')}\": ${error}`);\n }\n }\n}\n\nexport async function isRegCtlAvailable (): Promise<boolean> {\n if(IS_REGCTL_AVAILABLE !== undefined) {\n return IS_REGCTL_AVAILABLE;\n }\n\n try {\n await execa('which', ['regctl']);\n IS_REGCTL_AVAILABLE = true;\n return true;\n }\n catch(error) {\n IS_REGCTL_AVAILABLE = false;\n return false;\n }\n}\n\nexport async function tagImage (input: string, output: string): Promise<void> {\n await exec('docker', ['tag', input, output]);\n}\n\nexport async function pushImage (image: string): Promise<void> {\n await exec('docker', ['push', image]);\n}\n\nexport async function copyImage (input: string, output: string): Promise<void> {\n await exec('regctl', ['image', 'copy', input, output]);\n}\n\nexport async function publish (pluginConfig: PluginConfig, context: Context): Promise<boolean | PublishResponse> {\n if (!context.nextRelease) {\n context.logger.log('No release schedules, so no images to tag.');\n return false;\n }\n\n const config = parseConfig(pluginConfig);\n const tasks = getTagTasks(config, context);\n if (!tasks.length) {\n return false;\n }\n\n for (const task of tasks) {\n if(await isRegCtlAvailable()) {\n context.logger.log(`Copy with regctl ${task.input} → ${task.output}`);\n\n try {\n await copyImage(task.input, task.output);\n continue;\n }\n catch(error) {\n context.logger.error(error);\n context.logger.log('Retry without regctl…');\n }\n }\n\n context.logger.log(`Tag ${task.input} → ${task.output}`);\n await tagImage(task.input, task.output);\n\n context.logger.log(`Push ${task.output}`);\n await pushImage(task.output);\n }\n\n const channel = context.nextRelease?.channel;\n const firstTask = tasks[0];\n return {\n name: `Docker container (${firstTask.output})`,\n url: getUrlFromImage(firstTask.output),\n channel\n };\n}\n\nexport default {\n publish\n};\n"],"mappings":"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","names":["execa","IS_REGCTL_AVAILABLE","parseConfig","config","result","image","name","value","getBaseImage","input","p","isPreRelease","context","getMajorAndMinorPart","version","parts","getTagTasks","_a","outputBase","major","minor","channel","getUrlFromImage","couldBeAHostname","exec","file","args","__async","execa","error","isRegCtlAvailable","tagImage","output","pushImage","copyImage","publish","pluginConfig","tasks","task","firstTask","lib_default"]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/index.ts"],"sourcesContent":["import { Context } from 'semantic-release';\nimport {\n MajorAndMinorPart,\n NormalizedPluginConfigTags,\n NormalizedPluginConfig,\n PluginConfig,\n PluginConfigTagKeys,\n TagTask,\n PublishResponse\n} from './types.js';\nimport { execa } from 'execa';\n\nexport {\n PluginConfig,\n NormalizedPluginConfigTags,\n NormalizedPluginConfig,\n PluginConfigTagKeys,\n MajorAndMinorPart,\n TagTask\n};\n\nlet IS_REGCTL_AVAILABLE: boolean | undefined= undefined;\n\nexport function parseConfig (config: PluginConfig): NormalizedPluginConfig {\n const result: NormalizedPluginConfig = {\n images: [],\n tag: {\n latest: true,\n major: true,\n minor: true,\n version: true,\n channel: true\n }\n };\n\n if (typeof config.images === 'string') {\n result.images.push(config.images);\n } else if (Array.isArray(config.images)) {\n config.images\n .filter(image => typeof image === 'string')\n .forEach(image => result.images.push(image));\n } else {\n throw new Error('Configuration invalid: No image defined!');\n }\n\n const tagNames = Object.keys(result.tag) as PluginConfigTagKeys[];\n tagNames.forEach(name => {\n const value = config.tag ? config.tag[name] : undefined;\n if (value === true || value === false) {\n result.tag[name] = value;\n }\n });\n\n return result;\n}\n\nexport function getBaseImage (input: string): string {\n let p = input.split('@')[0].split(':');\n\n // it's a \":port\"\n if (p[1] && p[1].includes('/')) {\n p = [p[0] + ':' + p[1], p[2]];\n }\n\n return p[0];\n}\n\nexport function isPreRelease (context: Context): boolean {\n return Boolean(context.nextRelease && context.nextRelease.version.includes('-'));\n}\n\nexport function getMajorAndMinorPart (version: string | undefined): MajorAndMinorPart {\n if (!version) {\n return {\n major: null,\n minor: null\n };\n }\n\n const parts = version.split('.', 2);\n return {\n major: parts[0],\n minor: parts[1]\n };\n}\n\nexport function getTagTasks (config: NormalizedPluginConfig, context: Context): TagTask[] {\n const result: TagTask[] = [];\n\n if (!context.nextRelease) {\n return [];\n }\n\n const version = context.nextRelease.version;\n config.images.forEach(input => {\n const outputBase = getBaseImage(input);\n\n // version\n if (config.tag.version && version) {\n result.push({\n input,\n output: `${outputBase}:${version}`\n });\n }\n\n if (!isPreRelease(context)) {\n const { major, minor } = getMajorAndMinorPart(version);\n\n // latest\n if (config.tag.latest) {\n result.push({\n input,\n output: `${outputBase}:latest`\n });\n }\n\n // major\n if (config.tag.major && major) {\n result.push({\n input,\n output: `${outputBase}:${major}`\n });\n }\n\n // minor\n if (config.tag.minor && major && minor) {\n result.push({\n input,\n output: `${outputBase}:${major}.${minor}`\n });\n }\n }\n\n // channel\n const channel = context.nextRelease?.channel;\n if (config.tag.channel && channel) {\n result.push({\n input,\n output: `${outputBase}:${channel}`\n });\n }\n });\n\n return result;\n}\n\nexport function getUrlFromImage (image: string): string | undefined {\n const parts = getBaseImage(image).split('/');\n if (parts[0] === 'ghcr.io' && parts.length === 3) {\n return `https://github.com/${parts[1]}/${parts[2]}/pkgs/container/${parts[2]}`;\n }\n if (parts[0] === 'registry.gitlab.com' && parts.length >= 3) {\n return `https://gitlab.com/${parts[1]}/${parts[2]}/container_registry`;\n }\n\n const couldBeAHostname = parts[0].includes('.');\n if (!couldBeAHostname && parts.length === 2) {\n return `https://hub.docker.com/r/${parts[0]}/${parts[1]}/tags`;\n }\n if (!couldBeAHostname && parts.length === 1) {\n return `https://hub.docker.com/_/${parts[0]}/tags`;\n }\n}\n\nexport async function exec (file: string, args: string[]): Promise<void> {\n try {\n await execa(file, args);\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'command' in error && 'message' in error) {\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n throw new Error(`Unable to run \"${error.command}\": ${error.message}`);\n } else {\n throw new Error(`Unable to run \"${args.join(' ')}\": ${error}`);\n }\n }\n}\n\nexport async function isRegCtlAvailable (): Promise<boolean> {\n if(IS_REGCTL_AVAILABLE !== undefined) {\n return IS_REGCTL_AVAILABLE;\n }\n\n try {\n await execa('which', ['regctl']);\n IS_REGCTL_AVAILABLE = true;\n return true;\n }\n catch(error) {\n IS_REGCTL_AVAILABLE = false;\n return false;\n }\n}\n\nexport async function tagImage (input: string, output: string): Promise<void> {\n await exec('docker', ['tag', input, output]);\n}\n\nexport async function pushImage (image: string): Promise<void> {\n await exec('docker', ['push', image]);\n}\n\nexport async function copyImage (input: string, output: string): Promise<void> {\n await exec('regctl', ['image', 'copy', input, output]);\n}\n\nexport async function publish (pluginConfig: PluginConfig, context: Context): Promise<boolean | PublishResponse> {\n if (!context.nextRelease) {\n context.logger.log('No release schedules, so no images to tag.');\n return false;\n }\n\n const config = parseConfig(pluginConfig);\n const tasks = getTagTasks(config, context);\n if (!tasks.length) {\n return false;\n }\n\n for (const task of tasks) {\n if(await isRegCtlAvailable()) {\n context.logger.log(`Copy with regctl ${task.input} → ${task.output}`);\n\n try {\n await copyImage(task.input, task.output);\n continue;\n }\n catch(error) {\n context.logger.error(error);\n context.logger.log('Retry without regctl…');\n }\n }\n\n context.logger.log(`Tag ${task.input} → ${task.output}`);\n await tagImage(task.input, task.output);\n\n context.logger.log(`Push ${task.output}`);\n await pushImage(task.output);\n }\n\n const channel = context.nextRelease?.channel;\n const firstTask = tasks[0];\n return {\n name: `Docker container (${firstTask.output})`,\n url: getUrlFromImage(firstTask.output),\n channel\n };\n}\n\nexport default {\n publish\n};\n"],"mappings":"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","names":["execa","IS_REGCTL_AVAILABLE","parseConfig","config","result","image","name","value","getBaseImage","input","p","isPreRelease","context","getMajorAndMinorPart","version","parts","getTagTasks","_a","outputBase","major","minor","channel","getUrlFromImage","couldBeAHostname","exec","file","args","__async","execa","error","isRegCtlAvailable","tagImage","output","pushImage","copyImage","publish","pluginConfig","tasks","task","firstTask","lib_default"]}
|
package/package.json
CHANGED
|
@@ -8,31 +8,31 @@
|
|
|
8
8
|
},
|
|
9
9
|
"description": "Plugin for semantic-release that tags a previously built Docker image and pushes it to one or more Docker registries",
|
|
10
10
|
"devDependencies": {
|
|
11
|
-
"@qiwi/semantic-release-gh-pages-plugin": "^5.2.
|
|
11
|
+
"@qiwi/semantic-release-gh-pages-plugin": "^5.2.10",
|
|
12
12
|
"@semantic-release/changelog": "^6.0.3",
|
|
13
13
|
"@semantic-release/exec": "^6.0.3",
|
|
14
14
|
"@semantic-release/git": "^10.0.1",
|
|
15
|
-
"@semantic-release/npm": "^
|
|
16
|
-
"@types/mocha": "^10.0.
|
|
17
|
-
"@types/node": "^20.
|
|
18
|
-
"@types/semantic-release": "^20.0.
|
|
19
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
|
20
|
-
"@typescript-eslint/parser": "^6.
|
|
15
|
+
"@semantic-release/npm": "^11.0.1",
|
|
16
|
+
"@types/mocha": "^10.0.6",
|
|
17
|
+
"@types/node": "^20.10.2",
|
|
18
|
+
"@types/semantic-release": "^20.0.6",
|
|
19
|
+
"@typescript-eslint/eslint-plugin": "^6.13.1",
|
|
20
|
+
"@typescript-eslint/parser": "^6.13.1",
|
|
21
21
|
"c8": "^8.0.1",
|
|
22
|
-
"eslint": "^8.
|
|
23
|
-
"eslint-plugin-jsonc": "^2.
|
|
22
|
+
"eslint": "^8.55.0",
|
|
23
|
+
"eslint-plugin-jsonc": "^2.10.0",
|
|
24
24
|
"license-checker": "^25.0.1",
|
|
25
25
|
"mocha": "^10.2.0",
|
|
26
26
|
"mochawesome": "^7.1.3",
|
|
27
27
|
"semantic-release-license": "^1.0.3",
|
|
28
28
|
"source-map-support": "^0.5.21",
|
|
29
29
|
"ts-node": "^10.8.2",
|
|
30
|
-
"tsup": "^
|
|
31
|
-
"typedoc": "^0.25.
|
|
32
|
-
"typescript": "^5.
|
|
30
|
+
"tsup": "^8.0.1",
|
|
31
|
+
"typedoc": "^0.25.4",
|
|
32
|
+
"typescript": "^5.3.2"
|
|
33
33
|
},
|
|
34
34
|
"engines": {
|
|
35
|
-
"node": "
|
|
35
|
+
"node": ">=18.0.0"
|
|
36
36
|
},
|
|
37
37
|
"exports": "./dist/index.js",
|
|
38
38
|
"files": [
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"test": "docker pull alpine:latest && mocha"
|
|
57
57
|
},
|
|
58
58
|
"type": "module",
|
|
59
|
-
"version": "4.0.
|
|
59
|
+
"version": "4.0.3-develop.1"
|
|
60
60
|
}
|