Skip to content

Conversation

@shibd
Copy link
Owner

@shibd shibd commented Sep 26, 2025

Motivation

The CI has been experiencing several build failures recently, stemming from a few core issues:

  1. EOL Base Image: The Debian 10 "Buster" base image used for builds is now End-of-Life (EOL). This caused apt-get update commands to fail as the package repositories are no longer available at their standard locations.
  2. Incompatible Dependency: A transitive dependency, minimatch, was updated to v10+, which is no longer compatible with Node.js 18. This resulted in yarn install failing due to an engines incompatibility error.
  3. Non-Deterministic Builds: The yarn.lock file was not committed to the repository. This allowed transitive dependencies to be updated on every CI run, leading to unpredictable builds that could randomly fail when an upstream package was updated.

This PR addresses all of the above issues to ensure the CI build process is stable, reliable, and reproducible.

Changes

  1. Upgrade Docker Base Image to Bullseye

    • The base image in pkg/linux/Dockerfile_linux_glibc has been updated from node:X-buster to node:X-bullseye (Debian 11).
    • As a supported Long-Term Support (LTS) release, Bullseye completely resolves the apt-get update failures.
  2. Add Dependency Resolution for minimatch

    • A resolutions field has been added to package.json to pin the version of minimatch to ^9.0.0.
    • This ensures that the dependency installation succeeds on all supported Node.js versions, including Node.js 18.
  3. Commit yarn.lock for Deterministic Builds

    • The yarn.lock file has been added to version control.
    • This is a best practice that guarantees deterministic builds. From now on, yarn install will use the exact same dependency versions in both local development and CI environments, eliminating random failures from upstream dependency changes.
  4. Update CI Test Matrix

    • The CI workflow in .github/workflows/ci-pr-validation.yml has been updated accordingly. Tests against the deprecated buster environment have been removed to align the test matrix with the new build environment.

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.

2 participants