OpcotechOpcotech

RethinkDB - CI/CD Pipeline Rebuild

Opcotech rebuilt RethinkDB's CI/CD infrastructure using GitHub Actions, replacing an unmaintainable legacy setup with transparent, version-controlled workflows and restored release artifact infrastructure.

Open-source Software

Results

  • CI/CD configuration availability

    LostVersion-controlled

  • Pipeline maintainability

    Legacy-dependentCommunity-owned

  • Packaging portability

    Coupled & PrivateIndependently executable

Challenge

Building and releasing a C++ database involves more than compiling source code. RethinkDB required testing, packaging, and distribution across multiple Linux distributions, with additional release requirements for its drivers and supporting components. Following its transition to community governance, RethinkDB had lost access to its former build infrastructure and configuration. This disrupted the project's ability to validate changes and prepare releases. Restoring these capabilities required a delivery process that community maintainers could operate independently, without relying on undocumented systems or institutional knowledge.

Constraints

  • Build Reproducibility: Support consistent, repeatable builds across execution environments.
  • Community Maintainability: Keep workflows accessible, reviewable, and manageable by contributors.
  • Lost Legacy Configuration: Rebuild without relying on unavailable CI/CD configuration.
  • Modularity: Allow build, packaging, and artifact management components to operate independently.

What changed

Opcotech rebuilt RethinkDB's CI/CD workflows and release artifact infrastructure, replacing inaccessible legacy systems with version-controlled automation and a community-maintainable delivery architecture.

Architecture

GitHub Actions orchestrates RethinkDB's existing Make-based build system. Sonatype Nexus Repository OSS manages release artifacts, with supporting infrastructure hosted on DigitalOcean.

Decisions

Using GitHub Actions

Rather than reverse-engineering the lost configuration of the original custom CI/CD system, Opcotech adopted GitHub Actions. Keeping pipeline definitions alongside the source code allows contributors to inspect, modify, and review automation through GitHub's existing development workflow, reducing the need for separate infrastructure knowledge.

Reusing the Make-based build system

RethinkDB already had an established Make-based build system. Replacing it would have introduced unnecessary complexity and risk into the migration. Instead, GitHub Actions handles orchestration while Make remains responsible for the underlying build operations, preserving existing build logic and separating it from the CI/CD platform.


Details

Rebuilding the CI/CD Workflows

With the former CI/CD configuration unavailable, the workflows had to be reconstructed around RethinkDB's existing build requirements.

Opcotech implemented GitHub Actions workflows to automate build and release operations, integrating them with the project's established Make targets.

Pipeline definitions are stored in the repository, allowing changes to build automation to follow the same version-control and code-review practices as application code.

This provides a common foundation for maintaining automation as the project evolves, without requiring contributors to administer a separate, custom CI/CD system.

Restoring Artifact Management

CI/CD automation alone was insufficient to restore RethinkDB's release capabilities. The project also needed infrastructure to manage the artifacts produced by its build and packaging processes.

Opcotech recreated the artifact repository using Sonatype Nexus Repository OSS and deployed the supporting infrastructure on DigitalOcean droplets.

The repository serves as a dedicated component for artifact management, separate from the workflows responsible for producing those artifacts.

This separation allows build automation and artifact storage to evolve independently, with distinct responsibilities within the release architecture.

Supporting Independent Packaging

In parallel with the infrastructure rebuild, RethinkDB community contributors extracted the packaging infrastructure into a standalone component.

Packaging operations can therefore be executed locally or invoked from CI/CD workflows, rather than depending on a particular automation environment.

This modularity provides greater flexibility for maintaining distribution-specific packaging logic and adapting release processes in the future.

Outcome

The engagement restored essential build and release capabilities while reducing the project's dependence on inaccessible legacy infrastructure.

The resulting architecture places CI/CD configuration under version control, retains established build logic, and separates artifact management from workflow execution.

More importantly, it gives the RethinkDB community a delivery foundation that can be inspected, maintained, and extended through familiar development practices, supporting the project's long-term sustainability.

Related Services