Skip to content

release: v1.0.0-24.13.1 into main#4

Merged
Amnoor merged 6 commits intomainfrom
release/v1.0.0-24.13.1
Feb 26, 2026
Merged

release: v1.0.0-24.13.1 into main#4
Amnoor merged 6 commits intomainfrom
release/v1.0.0-24.13.1

Conversation

@Amnoor
Copy link
Contributor

@Amnoor Amnoor commented Feb 26, 2026

Summary

This PR promotes the release/v1.0.0-24.13.1 branch into main, marking the first stable, production-ready release of Runtime Node. It consolidates all work that was developed, reviewed, and validated on develop across three prior merges — the distroless Dockerfile, the full CI/CD automation pipeline, and the complete project documentation — into the stable production branch for the first time.

Merging this PR into main will make the codebase release-ready. The deployment workflow is configured to trigger automatically on a v1.0.0-24.13.1 tag push to main, which will build and publish the multi-platform image to both Docker Hub (runtimenode/runtime-node) and GHCR (ghcr.io/Runtimes-Node/runtime-node) with provenance attestations and an SBOM attached.

Files Changed

Added:

  • .github/
    • assets/
      • icon.svg
    • workflows/
      • deployment.yml
      • pr-tests.yml
  • CONTRIBUTING.md
  • Dockerfile
  • README.md

Modified:

  • None

Deleted:

  • None

Key Changes

  • Added Dockerfile — a two-stage scratch-based build that extracts only the Node.js binary, musl libc, libstdc++, libgcc_s, CA certificates, a /tmp mount point, and a minimal nsswitch.conf from node:24.13.1-alpine3.22, assembling a distroless runtime image with NODE_ENV=production baked in and full OCI metadata labels applied.
  • Added .github/workflows/pr-tests.yml — a CI workflow triggered on PRs targeting main or develop that lints the Dockerfile with Hadolint, then builds and validates the image across linux/amd64 and linux/arm64 with four integrity tests: Node.js binary smoke test, no-shell check, no-package-manager check, and NODE_ENV=production validation.
  • Added .github/workflows/deployment.yml — a release workflow triggered on v* tag pushes that builds the multi-platform image and publishes it to both Docker Hub and GHCR with provenance and SBOM attestations, using docker/metadata-action for automatic tag generation including a latest alias.
  • Added README.md — full project documentation covering what the image is, the security rationale, a feature comparison table against node:latest and node:alpine, quick start commands, a complete multi-stage usage example, registry and platform information, CI/CD quality guarantees, versioning policy, and an acknowledgements section.
  • Added CONTRIBUTING.md — the complete contributor reference covering branch strategy, branch naming conventions, Conventional Commits format, PR structure requirements, the CI pipeline walkthrough, the distroless guarantee manifest, the release process, and hard Dockerfile constraints.
  • Added .github/assets/icon.svg — the project's SVG icon referenced across both README.md and CONTRIBUTING.md.

Amnoor and others added 6 commits February 25, 2026 18:19
This merge introduces the foundational Dockerfile for the Runtime Node project, establishing a secure, distroless, multi-architecture Node.js runtime image built entirely from a scratch base. The build uses a two-stage approach where the Alpine-based builder stage is responsible for preparing the `/tmp` directory with correct sticky bit permissions, generating a minimal DNS configuration via `nsswitch.conf`, and serving as the source for all necessary runtime artifacts.

The final scratch-based image includes only what is required to execute a Node.js process: the musl dynamic linker, `libstdc++`, `libgcc_s`, the Node.js binary, and CA certificates for TLS support. All filesystem entries are set to `555` permissions to enforce a read-only, minimal-privilege environment. The `NODE_ENV` is hardcoded to `production`, and full OCI-compliant image metadata is embedded as labels for traceability and discoverability.

No application code is included in this image — it is intended to serve purely as the base runtime layer on top of which application images will be built. There are no migration steps or breaking changes. Rollback is as simple as reverting this file prior to building.
…" branch

This merge introduces the complete CI/CD automation layer for the Runtime Node project, delivered through two dedicated GitHub Actions workflow files. The PR testing workflow (`pr-tests.yml`) activates on every pull request targeting either `main` or `develop`, running a sequential pipeline that first lints the Dockerfile via Hadolint with a warning-level failure threshold, then builds the image across both `linux/amd64` and `linux/arm64` using a matrix strategy and subjects it to four automated integrity tests: confirming the Node.js binary is functional, verifying no shell binary is present, verifying no package manager binary is present, and asserting that `NODE_ENV` is set to `production`. This guarantees that the distroless contract is machine-verified on every proposed change before it can be merged.

The deployment workflow (`deployment.yml`) activates on pushes to any `v*` tag and handles the full production release process — building and pushing the multi-platform image simultaneously to Docker Hub under `runtimenode/runtime-node` and to GHCR under `ghcr.io/Runtimes-Node/runtime-node`, with both provenance and SBOM attestations enabled. Image tags are managed automatically through `docker/metadata-action`, producing both a version-specific tag and a `latest` alias per release. GHA layer caching is enabled in both workflows to keep build times efficient across repeated runs.

There are no application code changes in this merge and no migration steps required. Secrets (`DOCKERHUB_USERNAME`, `DOCKERHUB_TOKEN`) must be configured in the repository settings before the deployment workflow can successfully push to Docker Hub; GHCR access is handled automatically via the built-in `GITHUB_TOKEN`. Rollback, if ever needed, is as straightforward as removing or disabling the relevant workflow file.
…ranch

This merge introduces the complete public-facing documentation layer for the Runtime Node project. The README provides a thorough account of what the image is, the security and size rationale behind it, and a concrete comparison against the two most commonly used Node.js base images — demonstrating Runtime Node's advantages in image size, attack surface, distroless status, and supply chain transparency. It includes a ready-to-use multi-stage Dockerfile example, quick start commands for both Docker Hub and GHCR, and a full breakdown of the CI/CD quality guarantees and versioning policy enforced on every release.

The CONTRIBUTING guide establishes the canonical reference for all future contributors, codifying every aspect of the development workflow: the three-branch model, branch naming conventions, the Conventional Commits requirement, the exact PR title and description structure the project expects, a detailed walkthrough of the automated CI pipeline and its four per-platform integrity tests, a formal declaration of the distroless guarantee listing every permitted image component by path and purpose, the tag-triggered release process, and the hard Dockerfile constraints that must never be violated.

The project icon introduced under `.github/assets/icon.svg` provides the visual identity referenced across both documents. There are no code or image changes in this merge, no migration steps required, and no behavioral impact on the published image.
@Amnoor Amnoor merged commit cd57f65 into main Feb 26, 2026
3 checks passed
@Amnoor Amnoor deleted the release/v1.0.0-24.13.1 branch February 26, 2026 12:55
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