Skip to content

Reduce boilerplate when adding a new tool to an image #27

@lex57ukr

Description

@lex57ukr

Problem

Adding a tool to ci-tools currently requires edits to 5 files:

  1. Dockerfile — ARG + RUN block
  2. compose.yaml — build args mapping
  3. scripts/ci-tools/resolve.sh — resolver function + tool list
  4. scripts/ci-tools/verify.sh — check call
  5. versions.lock — initial entry

This creates friction and opportunities for missing a step, especially for npm/luarocks tools that follow an identical pattern.

Proposal

Explore whether a tool registry file (e.g. tools.yaml or a structured section in versions.lock) could reduce the number of manual touch points. For example, compose.yaml build args could be auto-generated from the lockfile, and npm tools could share a single templated Dockerfile block.

This is a design exploration — the current approach works fine, but may not scale well as tool count grows.

Context

Flagged during architectural review. Currently manageable with one image and ~10 tools, but worth considering before adding more.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions