
Vespa adopted Screwdriver in 2020 and it significantly improved their build.
Vespa adopted Screwdriver in 2020 and it significantly improved their build.
Having a reliable and automated process to apply changes to databases reduces the possibility of manual error, the amount of time required, and additional communication between teams.
Get an in-depth technical look at how Yahoo! Japan builds and deploys their software using Screwdriver and how they’ve been giving back to the community with hundreds of pull requests for the Screwdriver open-source project.
We’ve replaced HyperContainers with Kata Containers. Find out why.
SonarQube Enterprise Edition support was added to Screwdriver, which unlocks powerful Pull Request Workflows and improves build analysis performance.
Interested in using code quality analysis tools and want to run secure builds using virtual machines or containers?
The CD Foundation has joined the list of organizations participating in Google’s Summer of Code (GSoc) this year. GSoC is an annual program aimed at bringing more student developers into open source software development. The CD Foundation projects Spinnaker and Screwdriver joined long-time participant Jenkins in providing mentors for a number of projects for students interested in continuous delivery and software pipeline infrastructure.
In total, 7 Jenkins projects, 2 Spinnaker and 1 Screwdriver project were accepted in this summer’s program. Mentors from many different organizations around the world are pitching in, including CD Foundation ambassadors.
“The CD Foundation is dedicated to supporting open source continuous delivery projects worldwide. Part of that mission includes supporting and encouraging the next generation of talented developers worldwide, said Tara Hernandez, Senior Engineering Manager, Google Cloud Platform and CD Foundation Technical Oversight Committee member. “Thank you to the students and mentors who work tirelessly to create and innovate for the GSoC. We hope everyone has a fantastic time coding and learning this summer. Congratulations!”
The following is a list of the projects accepted and links to each project description and associated mentors.
Jenkin’s Projects
Loghi Perinpanayagam – Jenkins Machine Learning Plugin for Data Science
This project provides a plugin for data scientists to integrate Machine Learning Workflow with Jenkins.
Kezhi Xiong – GitHub Checks API for Jenkins Plugins
The GitHub Checks API allows developers to report the CI integrations’ detail information rather than binary pass/fail build status on GitHub pages.
stellargo – External Fingerprint Storage for Jenkins
File fingerprinting is a way to track which version of a file is being used by a job/build, making dependency tracking easy.
Rishabh Budhouliya – Git Plugin Performance Improvement
The principles of micro-benchmarking were used to create and execute a test suite which involves comparison of GitClient APIs implemented by CliGitAPIImpl and JGitAPIImpl using “average execution time per operation” as a performance metric.
Buddhika Chathuranga – Jenkins Windows Services: YAML Configuration Support
Enhance Jenkins master and agent service management on Windows by offering new configuration file formats and improving settings validation.
Zixuan Liu – Jenkins X: Consolidate the use of Apps / Addons
The main aim of the project is to consolidate Apps and Addons inside Jenkins X to avoid confusion.
Sladyn Nunes Custom Jenkins Distribution Build Service
The main idea behind the project is to build a customizable Jenkins distribution service that could be used to build tailor-made Jenkins distributions.
Spinnaker Projects
Victor Odusanya – Drone CI type for Spinnaker pipeline stage
Add Drone build type as a Spinnaker pipeline stage type.
Moki Daniel – “Continuous Delivery, Continuous Deployments with Spinnaker”
This project idea will aim at ensuring continuous delivery and continuous deployments, bringing up automated releases, undertaking deployments across multiple cloud providers, and mastering the best built-in deployments practices from Spinnaker.
Screwdriver Project
Supratik Das – Improve SCM Integration
The two key areas where Screwdriver will be improved are introduction of deployment keys for seamless handling of private repositories and triggering of builds from external SCM repositories.
Thank you to all participants! We look forward to getting updates and information on progress over the summer. For more details, please continue to visit the CD Foundation blog.
Pritam Paul, Software Engineer, Verizon Media
We have recently made changes to the underlying Screwdriver Architecture for build processing. Previously, the executor-queue was tightly-coupled to the SD API and worked by constantly polling for messages at specific intervals. Due to this design, the queue would block API requests. Furthermore, if the API crashed, scheduled jobs might not be added to the queue, causing cascading failures.
Hence, keeping the principles of isolation-of-concerns and abstraction in mind, we designed a more resilient REST-API-based queueing system: the Queue Service. This new service reads, writes and deletes messages from the queue after processing. It also encompasses the former capability of the queue-worker and acts as a scheduler.
The SD API and Queue Service communicate bidirectionally using signed JWT tokens sent via auth headers of each request.
For more details, check out our design spec.
As a cluster admin, to configure using the queue as an executor, you can deploy the queue-service as a REST API using a screwdriver.yaml and update configuration in SD API to point to the new service endpoint:
# config/default.yaml
ecosystem:
# Externally routable URL for the User Interface
ui: https://cd.screwdriver.cd# Externally routable URL for the Artifact Store
store: https://store.screwdriver.cd# Badge service (needs to add a status and color)
badges: https://img.shields.io/badge/build–.svg# Internally routable FQDNS of the queue service
queue: http://sdqueuesvc.screwdriver.svc.cluster.localexecutor:
plugin: queue
queue: “
For more configuration options, see the queue-service documentation.
In order to use the new workflow features, you will need these minimum versions:
Thanks to the following contributors for making this feature possible:
We’d love to hear from you. If you have any questions, please feel free to reach out here. You can also visit us on Github and Slack.
Screwdriver Team from Verizon Media
Previously, users could not start builds during a freeze window unless they made changes to the freeze window setting in the screwdriver.yaml configuration. Now, you can start a build by entering a reason in the confirmation modal. This can be useful for users needing to push out an urgent patch or hotfix during a freeze window.
In order to have these improvements, you will need these minimum versions:
Thanks to the following contributors for making this feature possible:
We’d love to hear from you. If you have any questions, please feel free to reach out here. You can also visit us on Github and Slack.
Part 2 from the Screwdriver Team at Verizon Media
In order to have these improvements, you will need these minimum versions:
We’d love to hear from you. If you have any questions, please feel free to reach out here. You can also visit us on Github and Slack.