持续整合 Continuous Integration
自动化测试The automated testing on checked in source code can be thought of like the bumper guards in bowling that prevent code quality from going too far off track. CI combined with unit and integration tests check that any code modifications do not break existing tests to ensure the software works as intended.
- Jenkins 是一个常用的CI服务器，源代码Jenkins source code is on GitHub
- Go CD is a CI server by ThoughtWorks that was designed with best practices for the build and test & release cycles in mind. Go CD source code is on GitHub.
- Strider is a CI server written in node.js. Strider source code is on GitHub.
- BuildBot is a continuous integration framework with a set of components for creating your own CI server. It’s written in Python and intended for development teams that want more control over their build and deployment pipeline. BuildBot source code is on GitHub.
- TeamCity is JetBrains’ closed source CI server that requires a license to use.
Jenkins is commonly used as a continuous integration server implementation for Python projects because it is open source and programming language agnostic. Learn more via the following resources or on the dedicated Jenkins page.
- My book on deploying Python web applications walks through every step of setting up a Jenkins project with a WSGI application to enable continuous delivery. Take a look if you’re not grokking all of the steps provided in these other blog posts.
- Assembling a continuous integration service for a Django project on Jenkins shows how to set up a Ubuntu instance with a Jenkins server that’ll build a Django project.
- Setting up Jenkins as a continuous integration server for Django is another solid tutorial that also shows how to send email notifications as part of the build process.
- What is continuous integration? is a classic detailed article by Martin Fowler on the concepts behind CI and how to implement it.
- Continuous Deployment For Practical People is not specific to Python but a great read on what it entails.
- Continuous Integration & Delivery – Illustrated uses well done drawings to show how continuous integration and delivery works for testing and managing data.
- Diving into continuous integration as a newbie is a retrospective on learning CI from a Rackspace intern on how she learned the subject.
- 6 top continuous integration tools gives a high level overview of six CI tools from a programming language agnostic perspective.
- Updating the GOV.UK Continuous Integration environment explains the UK’s Government Digital Service continuous integration configuration that relies on Jenkins.
- StackShare’s Continuous Integration tag lists a slew of hosted CI services roughly ranked by user upvotes.
- Good practices for continuous integration includes advice on checking in code, commit tests and reverting to previous revisions.
- Deploying to AWS using Ansible, Docker and Teamcity is an example walking through one potential way to use the Teamcity CI server for automated deployments.
- Why Continuous Integration Is Important is a high-level overview of how CI can build trust both among developers and between developers and non-technical people in an organization. The post also discusses tasks related to setting up reliable CI such as test environments, integration testing and visibility into the CI results.
- Continuous Intrusion: Why CI tools are a hacker’s best friend (PDF) strongly advises securing your continuous integration server just as you would every other part of your production application, unless you want your environment to be vulnerable to malicious actors.