Compare commits

...

10 Commits

Author SHA1 Message Date
jkunz e10c51f6df v2.3.0
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-05-13 10:20:53 +00:00
jkunz aad4d806e7 feat(cli): support cached builds during push 2026-05-13 10:19:56 +00:00
jkunz 843ac72f26 v2.2.8
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-05-09 12:40:53 +00:00
jkunz 8ea6f6be83 fix(package): normalize bin entry path for the tsdocker CLI 2026-05-09 12:40:53 +00:00
jkunz a88c816763 v2.2.7
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-05-09 12:33:44 +00:00
jkunz 7cee6eb187 fix(docs): update installation and configuration documentation and include the license file in published artifacts 2026-05-09 12:33:44 +00:00
jkunz ec911832ed v2.2.6
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-05-08 13:40:20 +00:00
jkunz 302667305e fix(tsdockermanager): update project info loading to use the async ProjectInfo factory 2026-05-08 13:40:20 +00:00
jkunz 56cf0c0f52 v2.2.5
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2026-04-30 12:55:20 +00:00
jkunz 3a747cfd2f fix(scripts): use pnpm for the test script build command 2026-04-30 12:55:20 +00:00
9 changed files with 2543 additions and 1346 deletions
+29 -5
View File
@@ -4,6 +4,7 @@
"cli": true
},
"@git.zone/cli": {
"schemaVersion": 2,
"projectType": "npm",
"module": {
"githost": "gitlab.com",
@@ -14,11 +15,34 @@
"license": "MIT"
},
"release": {
"accessLevel": "public",
"registries": [
"https://verdaccio.lossless.digital",
"https://registry.npmjs.org"
]
"confirmation": "prompt",
"preflight": {
"requireCleanTree": true,
"test": false,
"build": true
},
"targets": {
"git": {
"enabled": true,
"remote": "origin",
"pushBranch": true,
"pushTags": true
},
"npm": {
"enabled": true,
"registries": [
"https://verdaccio.lossless.digital",
"https://registry.npmjs.org"
],
"accessLevel": "public",
"alreadyPublished": "success"
},
"docker": {
"enabled": false,
"engine": "tsdocker",
"patterns": []
}
}
}
},
"@ship.zone/szci": {
+34
View File
@@ -1,5 +1,39 @@
# Changelog
## Pending
## 2026-05-13 - 2.3.0
### Features
- Support cached builds during `tsdocker push`.
- Apply `--cached` to the push command's build phase before registry publishing.
- Migrate the project release config to schema v2 targets for the current release workflow.
## 2026-05-09 - 2.2.8 - fix(package)
normalize bin entry path for the tsdocker CLI
- Updates the package.json bin field from "cli.js" to "./cli.js" for the tsdocker executable.
## 2026-05-09 - 2.2.7 - fix(docs)
update installation and configuration documentation and include the license file in published artifacts
- Add the MIT license file to the repository and package contents
- Refresh README installation examples to use pnpm commands and clarify local vs CI builder and registry behavior
- Correct CLI help text to reference .smartconfig.json and update dependency versions in package.json
## 2026-05-08 - 2.2.6 - fix(tsdockermanager)
update project info loading to use the async ProjectInfo factory
- bump @push.rocks/projectinfo from ^5.0.2 to ^5.1.0
- replace direct ProjectInfo construction with await ProjectInfo.create(paths.cwd) during manager preparation
## 2026-04-30 - 2.2.5 - fix(scripts)
use pnpm for the test script build command
- updates the test script in package.json to run the build through pnpm instead of npm
## 2026-03-24 - 2.2.4 - fix(config)
migrate configuration loading to smartconfig and update build tooling compatibility
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Task Venture Capital GmbH
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+16 -20
View File
@@ -1,15 +1,15 @@
{
"name": "@git.zone/tsdocker",
"version": "2.2.4",
"version": "2.3.0",
"private": false,
"description": "A comprehensive Docker build tool for TypeScript projects with multi-arch support, multi-registry push, and CI-safe session isolation.",
"main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts",
"bin": {
"tsdocker": "cli.js"
"tsdocker": "./cli.js"
},
"scripts": {
"test": "(npm run build)",
"test": "(pnpm run build)",
"build": "(tsbuild)",
"buildDocs": "tsdoc"
},
@@ -29,7 +29,7 @@
"docker-build",
"cross-platform"
],
"author": "Lossless GmbH",
"author": "Task Venture Capital GmbH",
"license": "MIT",
"bugs": {
"url": "https://gitlab.com/gitzone/tsdocker/issues"
@@ -37,18 +37,18 @@
"homepage": "https://gitlab.com/gitzone/tsdocker#readme",
"devDependencies": {
"@git.zone/tsbuild": "^4.4.0",
"@git.zone/tsrun": "^2.0.1",
"@git.zone/tstest": "^3.5.1",
"@types/node": "^25.5.0"
"@git.zone/tsrun": "^2.0.3",
"@git.zone/tstest": "^3.6.5",
"@types/node": "^25.6.2"
},
"dependencies": {
"@push.rocks/lik": "^6.4.0",
"@push.rocks/projectinfo": "^5.0.2",
"@push.rocks/smartcli": "^4.0.20",
"@push.rocks/smartconfig": "^6.0.1",
"@push.rocks/smartfs": "^1.5.0",
"@push.rocks/lik": "^6.4.1",
"@push.rocks/projectinfo": "^5.1.0",
"@push.rocks/smartcli": "^4.0.21",
"@push.rocks/smartconfig": "^6.1.1",
"@push.rocks/smartfs": "^1.5.1",
"@push.rocks/smartinteract": "^2.0.16",
"@push.rocks/smartlog": "^3.2.1",
"@push.rocks/smartlog": "^3.2.2",
"@push.rocks/smartlog-destination-local": "^9.0.2",
"@push.rocks/smartlog-source-ora": "^1.0.9",
"@push.rocks/smartshell": "^3.3.8"
@@ -65,11 +65,7 @@
"assets/**/*",
"cli.js",
".smartconfig.json",
"readme.md"
],
"pnpm": {
"overrides": {
"lru-cache": ">=11.0.0"
}
}
"readme.md",
"license"
]
}
+2426 -1309
View File
File diff suppressed because it is too large Load Diff
+10 -8
View File
@@ -27,10 +27,10 @@ For reporting bugs, issues, or security vulnerabilities, please visit [community
```bash
# Global installation (recommended for CLI usage)
npm install -g @git.zone/tsdocker
pnpm add --global @git.zone/tsdocker
# Or project-local installation
pnpm install --save-dev @git.zone/tsdocker
pnpm add --save-dev @git.zone/tsdocker
```
## Quick Start
@@ -118,6 +118,7 @@ tsdocker push --no-build Dockerfile_api Dockerfile_web
| `<patterns>` | Positional Dockerfile name patterns to select which images to push |
| `--registry=<url>` | Push to a single specific registry instead of all configured |
| `--no-build` | Skip the build phase; only push existing images from local registry |
| `--cached` | Skip unchanged Dockerfiles during the build phase |
### Config Subcommands
@@ -243,7 +244,8 @@ Every tsdocker invocation gets its own **session** with unique:
- **Session ID** — Random 8-char hex (override with `TSDOCKER_SESSION_ID`)
- **Registry port** — Dynamically allocated (override with `TSDOCKER_REGISTRY_PORT`)
- **Registry container** — Named `tsdocker-registry-<sessionId>`
- **Builder suffix** — In CI, the buildx builder gets a `-<sessionId>` suffix to prevent collisions
- **Builder suffix** — Local runs use a stable project hash; CI runs add the session ID to prevent collisions
- **Registry data path** — Local runs use `.nogit/docker-registry/`; CI runs use `.nogit/docker-registry/<sessionId>/`
This prevents resource conflicts when multiple CI jobs run tsdocker in parallel. Auto-detected CI systems:
@@ -254,7 +256,7 @@ This prevents resource conflicts when multiple CI jobs run tsdocker in parallel.
| `GITLAB_CI` | GitLab CI |
| `CI` | Generic CI |
In local dev, no suffix is added — keeping a persistent builder for faster rebuilds.
In local dev, the builder suffix is stable per project path, keeping a reusable builder while avoiding collisions between projects. In CI, the session ID is added so parallel jobs do not share builders or registry storage.
### 🔍 Docker Context & Topology Detection
@@ -557,7 +559,7 @@ tsdocker push
build-and-push:
stage: build
script:
- npm install -g @git.zone/tsdocker
- pnpm add --global @git.zone/tsdocker
- tsdocker push
variables:
DOCKER_REGISTRY_1: 'registry.gitlab.com|$CI_REGISTRY_USER|$CI_REGISTRY_PASSWORD'
@@ -568,7 +570,7 @@ build-and-push:
```yaml
- name: Build and Push
run: |
npm install -g @git.zone/tsdocker
pnpm add --global @git.zone/tsdocker
tsdocker login
tsdocker push
env:
@@ -580,7 +582,7 @@ build-and-push:
```yaml
- name: Build and Push
run: |
npm install -g @git.zone/tsdocker
pnpm add --global @git.zone/tsdocker
tsdocker push
env:
DOCKER_REGISTRY_1: 'gitea.example.com|${{ secrets.REGISTRY_USER }}|${{ secrets.REGISTRY_PASSWORD }}'
@@ -687,7 +689,7 @@ dist_ts
## License and Legal Information
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [LICENSE](./LICENSE) file.
This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license) file.
**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.
+1 -1
View File
@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@git.zone/tsdocker',
version: '2.2.4',
version: '2.3.0',
description: 'A comprehensive Docker build tool for TypeScript projects with multi-arch support, multi-registry push, and CI-safe session isolation.'
}
+1 -1
View File
@@ -50,7 +50,7 @@ export class TsDockerManager {
// Load project info
try {
const projectinfoInstance = new plugins.projectinfo.ProjectInfo(paths.cwd);
const projectinfoInstance = await plugins.projectinfo.ProjectInfo.create(paths.cwd);
this.projectInfo = {
npm: {
name: projectinfoInstance.npm.name,
+4 -1
View File
@@ -67,7 +67,7 @@ CONFIG SUBCOMMANDS
show Show full global config
CONFIGURATION
Configure via smartconfig.json under the "@git.zone/tsdocker" key:
Configure via .smartconfig.json under the "@git.zone/tsdocker" key:
registries Array of registry URLs to push to
registryRepoMap Map of registry URL to repo path overrides
@@ -174,6 +174,9 @@ export let run = () => {
buildOptions.noCache = true;
}
buildOptions.pull = argvArg.pull !== false;
if (argvArg.cached) {
buildOptions.cached = true;
}
if (argvArg.verbose) {
buildOptions.verbose = true;
}