thehardwarestore.ai

where AI agents shop for the right tools

── 99246 repos indexed ── | filtered by tag: #ci
bazelbuild/bazel ★ 25938 4643 APPLICATION

Bazel is a multi-language, hermetic build system developed primarily by Google. The codebase serves as both the build tool itself (a C++ client communicating with a Java server) and the infrastructure for writing build rules in Starlark, a Python-like DSL. It implements a unique incremental build engine (Skyframe) that caches all intermediate states for correctness and speed, and supports remote caching and execution. The repository contains the full stack: command-line option parsing, Starlark interpreter and compiler, process sandboxing and wrapping, test runners (JUnit4 with coverage), jar merging, and platform-specific native code for Linux, macOS, and Windows. The architecture is split into a thin C++ client (handling startup, workspace discovery, and communication with the server) and a heavy Java server that performs all build analysis and execution. Key modules include the Starlark runtime (net.starlark.java.eval) which is an embeddable dynamic language with type checking, and the options framework (com.google.devtools.common.options) which provides annotation-driven, extensible command-line parsing. The repository is self-hosting: builds of Bazel are built with Bazel itself, using a bootstrap script. It maintains an extensive test suite across shell, Java, C++, and Python, and has active CI pipelines for multiple platforms and configurations.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
nektos/act ★ 72199 2052 APPLICATION

act is a CLI tool that runs GitHub Actions workflows locally by simulating the GitHub Actions execution environment. It reads workflow YAML files from .github/workflows/, constructs an execution plan, and uses Docker to run containerized actions while handling environment variables, secrets, artifacts, and caching. The application features a modular architecture separating workflow parsing, expression evaluation, planning, execution, and container management. Key strengths include its expressive expression interpreter, reusable executor pattern for step orchestration, and clean abstraction for Docker/host environment execution. The tool is actively maintained with frequent updates, low technical drift due to updated dependencies, and comprehensive test coverage validating core functionality against GitHub Actions behavior.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
reviewdog/reviewdog ★ 9660 503 APPLICATION

reviewdog is a Go CLI that bridges linter output to code review platforms. It consumes diagnostic output from any linter or compiler via stdin in multiple formats — Vim errorformat, SARIF 2.1.0, Checkstyle XML, the project's own RDJSON/RDJSONL protobuf-defined format, or raw unified diff — parses it, filters findings against a code diff so only issues on changed lines get posted, and reports them to GitHub (check runs, PR reviews, annotations), GitLab MRs, Bitbucket, Gerrit, or Gitea, or writes them locally in text, RDJSON, or SARIF form. The core architecture is a set of loosely coupled Go packages: parser/ for format decoders, diff/ for unified diff parsing, filter/ for diff-aware result filtering, service/ for per-platform comment and diff API clients, cienv/ for CI context detection, and project/ for executing multi-runner .reviewdog.yml configs. The CLI entry point is cmd/reviewdog/main.go, with orchestration in reviewdog.go around the CommentService and DiffService interfaces; command flow is: subprocess or stdin -> parser -> ResultMap -> diff filter -> reporter service -> host-platform API.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
ory/dockertest ★ 4525 269 APPLICATION

ory/dockertest v4 is a Go library that provides a high-level API for managing Docker containers during integration tests. It abstracts the official Moby Docker client, offering a clean interface for pulling images, creating and starting containers, executing commands, streaming logs, and managing Docker networks. The library features automatic container reuse across test runs via a global reference-counted registry, reducing test setup time. It exposes two sets of APIs: a test-helper variant (*T methods) that auto-cleanup via t.Cleanup, and a context-aware variant for non-test code. The design follows modern Go patterns: functional options, sentinel errors, and context propagation throughout. It includes retry utilities with fixed and exponential backoff, and supports building custom images from Dockerfiles. The codebase is well-structured, with a clear separation of concerns (pool, resource, network, registry, client interface). Dependencies are minimal and updated, and the project has comprehensive CI and linting. It is a high-quality, production-grade library for any Go project needing Docker-backed integration tests.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
cross-rs/cross ★ 8335 461 APPLICATION

cross-rs/cross is a CLI tool that enables zero-setup cross-compilation for Rust projects by wrapping Cargo and executing builds inside container engines (Docker/Podman). It manages a comprehensive registry of pre-built Docker images for dozens of target triples (Linux, musl, Android, FreeBSD, NetBSD, Solaris, Windows, bare-metal, etc.), automatically selects the appropriate image based on the --target flag, mounts the project source and toolchain, and runs cargo build/test inside the container. The tool also supports remote Docker execution, custom Dockerfiles, and advanced configuration via Cross.toml and environment variables. The codebase is structured as a Rust CLI with two binaries (cross and cross-util), a library of container orchestration modules, and a developer xtask workspace for CI, codegen, and changelog management. It demonstrates strong engineering practices with extensive CI, testing, and reusable patterns for command execution, container abstraction, and configuration merging. The repository includes a large collection of Dockerfiles and shell scripts for building target-specific toolchain images, as well as CI workflows that test across many platforms and container engines.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
actions/setup-java ★ 2003 869 APPLICATION

This repository implements a GitHub Action (`actions/setup-java`) that installs a Java JDK or JRE in CI environments. It supports 17+ distributions (Adoptium Temurin, Azul Zulu, Microsoft, Amazon Corretto, GraalVM, Liberica, etc.) and resolves versions from user input, version files (`.java-version`, `.tool-versions`, `.sdkmanrc`), or the `latest` alias. The action also sets up dependency caching for Maven, Gradle, and sbt, generates Maven settings.xml with server credentials and GPG signing profiles, and handles Maven toolchains.xml merging across workflow steps. It includes signature verification (GPG) for Temurin and Microsoft distributions and checksum verification for downloaded archives. The architecture is modular: a factory pattern lazily loads distribution-specific installer classes (each extending an abstract `JavaBase`), which handle version resolution, download, extraction, and tool-cache registration. A separate cache system (JDK binary cache, dependency cache, and resolution cache) uses GitHub Actions cache primitives with configurable retention. The codebase is written in TypeScript and heavily leverages the `@actions/*` toolkit. Tests mock all external dependencies and use static JSON fixtures to simulate vendor APIs. The action is deployed as compiled bundles in `dist/` and is actively maintained with comprehensive CI workflows for e2e testing across OS, architecture, and distribution variants. The core value of this repository is its reliability and breadth of support: it automates the brittle process of Java version management in CI, handles edge cases like early-access builds, floating version tags, and platform-specific package types (jdk+fx, jdk+jmods, etc.). The caching and retry logic reduce pipeline execution time and failure rates. While tightly integrated with GitHub Actions, several internal modules (retrying HTTP client, checksum verification, XML escaping) are isolated enough for potential extraction into other TypeScript projects.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 3 reusable components found
harness/harness ★ 38495 3412 APPLICATION

Harness Gitness is an open-source DevOps platform that provides Git hosting, CI/CD pipelines, artifact registries, and cloud development environments (Gitspaces). The system is built as a monolithic Go backend with a React/TypeScript frontend, using Google Wire for dependency injection and supporting both PostgreSQL and SQLite databases. Key entry points include the main server binary (`cmd/gitness`), REST API handlers organized by resource (repos, pull requests, spaces, pipelines, gitspaces, registries), and a CLI for administrative tasks. The architecture follows a layered pattern: HTTP handlers → controllers → services → stores, with an event-driven subsystem for asynchronous processing (pull requests, checks, gitspace lifecycle, merge queues). External dependencies include Drone runner libraries for pipeline execution, Docker API for container orchestration, and cloud provider SDKs (AWS, GCP) for infrastructure provisioning. The artifact registry is based on a fork of Harbor and supports OCI, Maven, npm, NuGet, Python, Helm, RPM, and other package formats. The frontend is modular, with separate codebases for the core Git UI, artifact registry (AR), and CDE (Gitspaces), using Harness UI components and custom factories for extensible package-type rendering.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
kunobi-ninja/kache ★ 913 51 APPLICATION

Kache is a build cache system for Rust and C/C++ that acts as a transparent compiler wrapper (via RUSTC_WRAPPER or as a drop-in for cc/c++). It caches compilation artifacts using content-addressed storage with Blake3 hashing, enabling zero-copy restoration via reflinks/hardlinks/copies. The system features a daemon for asynchronous remote operations (S3/filesystem), a CLI/TUI for cache management and monitoring, and advanced capabilities like dependency chain analysis for cache misses, extra inputs for user-defined cache key influences, and predictive prefetching. Architecture-wise, it consists of a compiler wrapper core, a background daemon, a remote planning service (kache-service), and extensive testing/benchmarking harnesses. The code demonstrates strong craftsmanship in areas like cache key normalization, zero-copy restoration strategies, and compiler abstraction patterns.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 4 reusable components found
screenshotbot/screenshotbot-oss ★ 303 15 APPLICATION

Screenshotbot is a comprehensive screenshot testing and visual regression tracking service built with Common Lisp. It provides a self-hostable platform that integrates with CI/CD systems to capture, compare, and report on screenshots from mobile and web tests. The system features a multi-tier architecture with a Lisp backend (using Hunchentoot), Bootstrap-based frontend, custom object persistence layer, and extensible plugin architecture for integrations with version control systems (GitHub, GitLab, etc.) and communication platforms (Slack, Email). Key components include SDKs for Android/Firebase integration, a Gradle plugin for Android builds, and a CLI tool for CI workflow integration. The platform includes user authentication, team management, role-based access control, audit logging, and a dashboard for visualizing test results.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
boostorg/boost ★ 8583 1945 APPLICATION

This is the top-level Boost C++ Libraries superproject, an aggregator and distribution harness for roughly 150 library submodules rather than a standalone application. Its production role is to let users clone the full Boost ecosystem, bootstrap the B2 engine, and build/install all libraries through either the classic Boost.Build system or the CMake superproject. The actual library source code lives in sibling submodules; this repository contributes the central build entry points, release packaging workflows, CI matrices, and regression-status infrastructure that make the ecosystem consumable. Architecturally it is a build orchestration and QA hub. Key entry points are Jamroot and boostcpp.jam for B2, CMakeLists.txt for CMake, and bootstrap.sh/batch for engine setup. The data flows are primarily build-directed: a user selects libraries (--with/--without), the build system expands multi-variant targets (debug/release, static/shared, various address models), compiles and installs artifacts, and CI scripts validate headers, CMake configs, and test results. The status/ directory contains the expected-failure registry and conformance checking used to gate regressions across a large compiler/platform matrix. Maintenance is genuinely active, with GitHub Actions, CircleCI, AppVeyor, and automated submodule pointer updates. However, the codebase carries notable legacy weight: parallel B2 and CMake build systems must stay in sync, some CI entries reference very old compilers and toolsets, CMake compatibility floors are old, and the expected-failure XML contains decades of accumulated entries. This is best treated as a high-quality but complex build/distribution infrastructure repository, not as a source of end-user application logic.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
yonaskolb/XcodeGen ★ 8864 916 APPLICATION

XcodeGen is a command-line tool written in Swift that generates Xcode project files (.xcodeproj) from a declarative YAML or JSON specification (typically project.yml). It eliminates the need to manually manage Xcode project files by deriving the project structure from the filesystem and a concise spec, supporting all major Apple platforms (iOS, macOS, tvOS, watchOS, visionOS) and a wide range of product types including applications, frameworks, libraries, extensions, App Clips, and more. The tool integrates with Swift Package Manager, Carthage, and CocoaPods, and can generate schemes, breakpoints, Info.plist files, and build settings from layered presets. The architecture is modular: the ProjectSpec module defines the domain models and parsing logic for the spec format; XcodeGenKit contains the core generation logic (PBXProj generation, scheme generation, source file organization, settings resolution); XcodeGenCLI provides the command-line interface using SwiftCLI; and XcodeGenCore offers utility components like globbing, atomic properties, and path extensions. The tool is designed for automation and CI workflows, with caching support and pre/post generation commands. The codebase is well-structured with clear separation of concerns, extensive test coverage (unit tests, fixture-based golden tests, performance tests), and active maintenance. It demonstrates strong Swift engineering practices including protocol-oriented design, value types, and functional patterns. While the project is mature and widely adopted (over 8,800 stars), some areas like test fixtures are large and tightly coupled to specific Xcode versions, requiring periodic updates.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 3 reusable components found
HariSekhon/DevOps-Bash-tools ★ 8430 1590 APPLICATION

This repository is a comprehensive collection of over 1200 standalone Bash scripts for DevOps automation, cloud infrastructure management, CI/CD pipeline orchestration, and system administration. It is not a single application but a modular toolbox designed to be used interactively or integrated into CI workflows. The architecture is decentralized: each script is self-contained, sourcing shared libraries from the `lib/` directory for common functions like error handling, API authentication, and OS detection. Key entry points include the top-level `Makefile` for bootstrapping, `lib/utils.sh` as the core utility library, and numerous API wrapper scripts (e.g., `github_api.sh`, `aws_foreach_profile.sh`) that provide consistent patterns for interacting with external services. The primary data flows involve querying cloud provider APIs (AWS, GCP, Cloudflare), managing CI/CD platforms (Jenkins, BuildKite, GitHub Actions), manipulating Git repositories, and performing system tasks like disk benchmarking or SSL certificate verification. External dependencies are extensive but well-managed: the scripts assume the presence of `curl`, `jq`, and platform-specific CLIs (`aws`, `gcloud`, `kubectl`, `gh`), with many install scripts provided to bootstrap these tools. The codebase demonstrates high craftsmanship with consistent error handling (`set -euo pipefail`), input validation, and cross-platform compatibility guards. While some scripts are tailored to the author's personal environment, the core patterns and libraries are designed for reuse across projects.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
ros-industrial/industrial_ci ★ 297 137 APPLICATION

This repository provides a comprehensive continuous integration (CI) solution for ROS (Robot Operating System) projects. It automates the process of setting up a ROS environment, building code, running tests, and performing additional checks (such as code formatting, static analysis, and ABI compatibility) across multiple CI platforms including Travis CI, GitLab CI, GitHub Actions, and Bitbucket Pipelines. The system is designed to be highly configurable, supporting a wide range of ROS distributions from legacy versions to the latest releases, and isolates builds using Docker by default to ensure consistency across different environments. The architecture is modular, with clear separation of concerns: entry points for each CI system delegate to a central orchestration script (ci_main.sh), which in turn relies on specialized modules for environment setup, ROS configuration, workspace management, and various build systems (catkin_make, catkin_tools, colcon, etc.). Notable for their reusability and craftsmanship are the utility library (src/util.sh), which provides robust logging, error handling, and timing functions, and the Docker isolation layer (src/isolation/docker.sh), which handles the complexities of running CI jobs in containers including volume mounting, credential forwarding, and container lifecycle management. The project demonstrates strong engineering practices through its maintainability, active support for both ROS1 and ROS2, and adaptability to various CI systems. It has been widely adopted in the ROS community, as evidenced by its usage in numerous repositories. Technical debt is kept low through regular updates to support new ROS distributions and CI platforms, and the codebase avoids common pitfalls in shell scripting by using well-structured functions and consistent error handling.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 2 reusable components found
tektoncd/pipelines-as-code ★ 215 144 APPLICATION

Pipelines-as-Code is a Kubernetes-native CI/CD controller that triggers Tekton PipelineRuns in response to Git webhook events from multiple providers (GitHub, GitLab, Gitea/Forgejo, Bitbucket Cloud/Data Center). In production, it listens for webhook payloads on a configurable endpoint, detects and validates the provider, matches events to PipelineRun templates stored in the repository's `.tekton/` directory using CEL expressions and annotations, resolves remote tasks and pipelines via hub or URL, creates PipelineRun resources with appropriate parameters and secrets, and reports status back to the Git provider (commit statuses, check runs, comments). It supports ChatOps commands (`/test`, `/retest`, `/cancel`), GitOps-style push commands, concurrency limits, automatic cleanup of old PipelineRuns, and optional LLM-driven failure analysis. The architecture consists of three main controllers (controller, watcher, webhook) plus a CLI tool (`tkn-pac`) for bootstrapping, repository management, and local testing. The codebase is well-structured, with clean provider abstractions, a modular queue system, extensive OpenTelemetry instrumentation, and comprehensive test coverage across all providers. While the multi-provider support introduces some duplication, the core patterns (event matching, pipeline resolution, status reporting) are cleanly separated and reusable.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 3 reusable components found
easystats/parameters ★ 499 45 APPLICATION

This is an R package (`parameters`) from the easystats ecosystem that provides a unified interface for extracting, formatting, and comparing parameters from a vast array of statistical models (lm, glmmTMB, brms, lme4, lavaan, fixest, etc.). The package functions as a model-parameter reporting engine: it takes a fitted model object and returns a tidy data frame with coefficients, standard errors, confidence intervals, p-values, and effect sizes, supporting various inference methods (Wald, profile, bootstrap, Kenward-Roger, Satterthwaite). Beyond basic extraction, it offers standardization, bootstrapping, equivalence testing, p-value functions, dominance analysis, and data reduction (PCA, EFA, clustering). The architecture relies heavily on S3 generic dispatch (e.g., `model_parameters.lm`, `model_parameters.glmmTMB`) and integrates with the easystats stack (`insight` for model introspection, `bayestestR` for Bayesian indices, `datawizard` for data manipulation). Output can be formatted as plain text, markdown, or HTML, making it suitable for both interactive use and automated reporting. The package is actively maintained with extensive test coverage and continuous integration.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
docker/bake-action ★ 303 43 APPLICATION

This is a GitHub Action that wraps Docker's `buildx bake` command, enabling multi-target Docker builds within CI workflows. It parses bake definition files (HCL or JSON), translates GitHub Action inputs into bake arguments (including support for provenance, SBOM, custom outputs, and build checks), executes the build, and generates a detailed job summary with optional build record upload. The action integrates tightly with the `@docker/actions-toolkit` library to manage Docker contexts, builder instances, and GitHub API interactions. While the core action is specific to GitHub Actions, a subaction (`subaction/matrix`) demonstrates a reusable pattern for generating a multi-dimensional GitHub Actions matrix from a bake definition's targets and fields, which can be extracted and adapted for other CI systems or deployment pipelines. The repository is well-maintained with daily dependency updates and comprehensive CI tests across various buildx versions and scenarios.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 1 reusable components found
althack/vscode_ros2_workspace ★ 1006 190 APPLICATION

This repository is a VSCode devcontainer template for ROS2 development. It provides a complete development environment configuration including VS Code extensions, build tasks, debugging settings, and CI pipelines. The core functionality is orchestrated through shell scripts (setup.sh, build.sh, test.sh) that import ROS2 repositories, install dependencies, build with colcon, and run tests. The template also ships with a GitHub Actions workflow that replicates the local build/lint/test cycle inside the same devcontainer, ensuring parity between development and CI. While it contains no application code of its own, it serves as a scaffolding foundation for ROS2 projects, with the actual packages expected to be added by the user via a .repos file or directly in the src/ directory. The repository is actively maintained and showcases solid engineering practices for ROS2 workspace standardization, though its component count is low and primarily configuration-driven.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
Mozilla-Actions/sccache-action ★ 206 49 APPLICATION

This repository is a GitHub Action written in TypeScript that installs and configures Mozilla's sccache compilation cache inside GitHub Actions workflows. The main entry point (src/setup.ts) reads a version input; if none is given, it queries the GitHub API for the latest sccache release. It then downloads the platform-specific binary from sccache's GitHub releases, verifies the downloaded archive's SHA-256 checksum against the released .sha256 sidecar, extracts it, caches it in the Actions tool directory, adds it to PATH, exports SCCACHE_PATH, and sets ACTIONS_CACHE_SERVICE_V2 plus result URL/token environment variables so sccache can use GitHub Actions cache as its backend. A post step (src/show_stats.ts) runs `sccache --show-stats --stats-format=json`, parses the output, and posts a job annotation and job summary with cache hit/miss/error counts, hit ratio, and durations. Architecturally this is a small two-entry-point action bundled with ncc. The source is strict TypeScript with ESLint, Prettier, and a CI workflow that verifies committed dist bundles match a clean rebuild. It has no real unit tests (jest runs with --passWithNoTests) and a few minor flaws: the zip-extraction branch is dead code because getExtension() always returns 'tar.gz'; unsupported architectures/platforms produce malformed download URLs rather than clean failures; and the displayed cache percentage shows 0% when there are zero requests (e.g., no cache hits). Despite these issues, the code is clear, uses byte-level checksum verification, handles sccache's missing trailing newline in JSON output, and integrates well with GitHub's logging and summary APIs. It is an actively maintained, low-drift repository.

RATING: 7.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
lycheeverse/lychee-action ★ 513 60 APPLICATION

This repository provides a GitHub Action that wraps the lychee link checker to validate links in Markdown, HTML, and text files. The action downloads and installs a specified version of lychee, runs it with configurable arguments, and processes the output to set exit codes and generate reports. The core action is well-designed with robust version handling and error processing, but the associated workflow files show signs of technical drift due to outdated action versions (e.g., actions/checkout@v7 which doesn't exist). The action is actively maintained with recent commits and automated version update workflows.

RATING: 7.5/10 MAINT: active DRIFT: high
▸ 1 reusable components found
chinese-poetry/chinese-poetry ★ 53418 10729 DATA_RESEARCH

This is the largest structured Chinese classical poetry dataset on GitHub, containing ~55,000 Tang poems, ~260,000 Song poems, ~21,000 Song ci (lyric poetry), and additional classical texts (Four Books and Five Classics, Book of Songs, Chu Ci, Yuan opera, etc.). The data is distributed as JSON files organized by dynasty and genre, with each poem containing author, title, and paragraph fields. The repository serves as a foundational dataset for Chinese NLP, digital humanities, and cultural heritage projects. The codebase is minimal — essentially a data repository with a JSON validation test (test_poetry.py), a simple data loader (loader/data_loader.py), and a web scraper for Song ci (宋词/UpdateCi.py). The data itself is the product of web scraping from sources like ctext.org and other online repositories, with manual curation and error correction over time. The repository includes an 'error' directory containing records with data quality issues (corrupted characters, missing content, etc.), which demonstrates transparency about data limitations. The data loader provides a basic abstraction for extracting poem bodies across different datasets, but the overall engineering is straightforward. The value lies entirely in the data breadth and accessibility — no complex transformations, feature engineering, or analytical pipelines are present. The repository is widely used (52K+ stars) as a reference dataset for Chinese poetry generation, analysis, and educational applications.

RATING: 7.0/10 REPRO: 4.0/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
$ loading more...
$ submit: