ricardomol
  • Ricardomol Notes
  • Frontend
    • Javascript Toolchain
    • Javascript
      • Quirks
      • Articles
        • Function caching
        • 12 JS Tricks
      • Closures
      • Assorted
      • ES6
      • this
      • OOP
      • Async Programming
      • Functional Programming
      • Typescript
    • React
      • Patterns
        • Render props
      • React Router
    • Webpack
    • CSS
      • Resources
  • Backend
    • Python
      • Shallow copy vs deep copy
      • Classes
      • Resources
      • Python C Extensions
      • Coroutines
      • Exceptions
      • Context managers
      • One-Liners
      • Open function
      • Object introspection
      • Targeting Python 2 + 3
      • For - else
      • Comprehensions
      • Lambdas
      • __slots__ magic
      • Collections
      • Enumerate
      • Mutation
      • Map, Filter and Reduce
      • Decorators
      • Sets
      • Fluent Python summary
      • Quizes / Tips
      • Generators
    • Django
      • Generic Relations
      • FBV's vs CBV's
      • ORM
      • DRF
    • RESTful Architecture
    • Resources
  • Databases
    • Joins
    • Normalization
    • PostgreSQL
  • DevOps
    • Docker
      • 0. Resources
      • 2. Services
      • 3. Swarms
      • 5. Stacks
      • 6. Deploy your app
    • CI
      • CI with Django
    • CD
    • PaaS
    • WSGI servers
    • Django
      • Django Deployment
    • Modern DevOps with Django
  • Git
    • Git
  • Comp Sci
    • Big O Notation
    • Patterns
    • Programming paradigms
  • Assorted
    • TCP vs UDP
    • Tests
    • MongoDB
    • Node
      • Resources
    • Go
    • HTTP vs HTTP2
    • GraphQL
    • Books
    • Vim
    • IPv4 vs IPv6
    • Regex
    • Redis
    • Celery
      • Brokers
    • Caching
  • SECURITY
    • Security
Powered by GitBook
On this page
  • Continuous Integration
  • Benefits
  • The practices
  • How to do it
  • Tools
  • Jenkins
  • Travis
  • Gitlab CI
  1. DevOps

CI

Continuous Integration

Development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.

By integrating regularly, you can detect errors quickly, and locate them more easily.

Benefits

  • No more long and tense integrations

  • Increase visibility enabling greater communication

  • Catch issues early

  • Less time debugging and more time adding features

  • Build a solid foundation

  • Stop waiting to find out if your code’s going to work

  • Reduce integration problems

The practices

  • Maintain a single source repository

  • Automate the build

  • Make your build self-testing

  • Every commit should build on an integration machine

  • Keep the build fast

  • Test in a clone of the production environment

  • Make it easy for anyone to get the latest executable version

  • Everyone can see what’s happening

  • Automate deployment

How to do it

  • Developers check out code into their private workspaces

  • When done, commit the changes to the repository

  • The CI server monitors the repository and checks out changes when they occur

  • The CI server builds the system and runs unit and integration tests

  • The CI server releases deployable artifacts for testing

  • The CI server assigns a build label to the version of the code it just built

  • The CI server informs the team of the successful build

  • If the build or tests fail, the CI server alerts the team

  • The team fixes the issue at the earliest opportunity

  • Continue to continually integrate and test throughout the project

Team responsibilities

  • Check in frequently

  • Don’t check in broken code

  • Don’t check in untested code

  • Don’t check in when the build is broken

  • Don’t go home after checking in until the system builds

Tools

Jenkins

Travis

Gitlab CI

Previous6. Deploy your appNextCI with Django

Last updated 6 years ago