Skip to content

obs-tools image: add the npm_lockfile service and Node.js 22 - #17

Merged
rjd15372 merged 1 commit into
mainfrom
obs-tools-npm-lockfile
Aug 28, 2026
Merged

obs-tools image: add the npm_lockfile service and Node.js 22#17
rjd15372 merged 1 commit into
mainfrom
obs-tools-npm-lockfile

Conversation

@rjd15372

Copy link
Copy Markdown
Collaborator

Why

PR #12 (pgAdmin 4, pgadmin-sp1) adds packages whose _service runs the repo-owned npm_lockfile service (SP1). The PR check runs inside ghcr.io/percona/obs-tools:latest, which build-obs-image.yml rebuilds only on pushes to main — so the image cannot contain a service that only exists on the PR branch, and the PR #12 sync fails with:

error: service binary not found: /usr/lib/obs/service/npm_lockfile

This PR carries only the image inputs, split out of pgadmin-sp1, so that merging it rebuilds obs-tools:latest from main with the service included. pgadmin-sp1 will then be rebased on top of main.

What

  • .github/docker/obs-tools/Dockerfile: cpio, obs-service-node-modules + python3-lxml, Node.js 22 + npm (NodeSource; major 22 matches the nodejs:22 module stream used on UBI_9), and COPY of tools/obs-services/npm_lockfile{,.service} into /usr/lib/obs/service/.
  • .github/workflows/build-obs-image.yml: tools/obs-services/** added to the paths: trigger.
  • tools/obs-services/: the npm_lockfile service (stdlib-only Python), its .service descriptor and README.
  • tests/test_npm_lockfile.py: unit tests for the service (13, standalone — load the script by path).

No packaging content changes; nothing under root/, so no OBS sync is involved.

Verification

Bake the repo-owned npm_lockfile OBS-style service (tools/obs-services/)
into ghcr.io/percona/obs-tools together with Node.js 22 + npm, cpio and
obs-service-node-modules, so percona-obs can generate package-lock.json
and vendor npm dependencies for packages whose upstream ships no npm
lockfile (pgAdmin 4). build-obs-image.yml now also rebuilds the image
when tools/obs-services/ changes.

Split out of the pgadmin-sp1 branch (PR #12): the PR check runs inside
obs-tools:latest, which is only rebuilt from main, so the service must
land on main before PR #12 can sync.

Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
@rjd15372
rjd15372 merged commit ffc1c7a into main Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant