Screwdriver is an open source build platform written in JavaScript designed for continuous delivery and continuous integration. The project originated as a hack for simplified Jenkins interfacing at Yahoo in 2012, but was rebuilt from scratch in 2016 as an open source project when Jenkins proved unstable at scale. The platform is executor and SCM-agnostic, allowing users to choose plugins that suit their needs or build custom ones.
The Screwdriver API comes preloaded with 18 resources covering authentication, builds, pipelines, jobs, events, webhooks, templates, commands, coverage, secrets, tokens, collections, banners, build clusters, stages, stage builds, and administrative functions. The platform supports three datastore options through Sequelize: Postgres, MySQL, and SQLite. For execution environments, users can choose between Kubernetes, Docker, or Nomad. Source control management integrations are available for GitHub, GitLab, and Bitbucket, providing flexibility in how teams manage their code repositories.
Installation options range from building from source to using prebuilt Docker images. The project provides an in-a-box script that brings up an entire Screwdriver instance locally including the UI, API, and log store. For production deployments, a Helm chart is available that bootstraps the complete Screwdriver ecosystem along with an nginx ingress controller. The platform requires Node v12.0.0 or higher and either Kubernetes or Docker as prerequisites.
Configuration is handled through a combination of default settings defined in config files, with the ability to override defaults using local.yaml files or environment variables. The project includes comprehensive testing infrastructure with unit tests and functional tests, though developers may encounter memory issues when running the full test suite and can adjust their environment accordingly. Functional testing leverages repositories forked from the screwdriver-cd-test organization.
According to GitGenius activity tracking, the repository shows significant engagement with a median issue and pull request response latency of 36835.4 hours and a mean of 33351.4 hours across 741 tracked items. The most active issue labels are feature with 257 items, UI with 197 items, and bug with 185 items. The primary contributors tracked include minghay with 1133 events, sagar1312 with 140 events, and VonnyJap with 136 events. The repository shares overlapping contributors with major projects including Microsoft's VSCode and TypeScript repositories as well as the Rust language project, indicating cross-pollination with significant open source ecosystems. The codebase is licensed under the BSD 3-Clause license and maintains CII Best Practices certification.