$30 off During Our Annual Pro Sale. View Details »

Continuous Integration for Python projects in 5 minutes

Continuous Integration for Python projects in 5 minutes

It's easy to get started with continuous integration for your Python project (running automated tests on every merge) using the available tools and services. This lightning talk shows how.

Senko Rašić

July 05, 2013
Tweet

More Decks by Senko Rašić

Other Decks in Programming

Transcript

  1. Senko Rasic (@senkorasic) goodcode.io
    Continuous Integration
    in 5 minutes

    View Slide

  2. Senko Rasic (@senkorasic) goodcode.io
    Step 0:
    have tests
    don't tolerate failing tests

    View Slide

  3. Senko Rasic (@senkorasic) goodcode.io

    View Slide

  4. Senko Rasic (@senkorasic) goodcode.io
    Step 1:
    make it easy to recreate
    the testing environment
    pip install .

    View Slide

  5. Senko Rasic (@senkorasic) goodcode.io
    Step 2:
    set up a CI server
    (Jenkins, Travis, Circle,
    Bamboo, ...)

    View Slide

  6. Senko Rasic (@senkorasic) goodcode.io
    .travis.yml
    language: python
    python:
    - 2.6
    - 2.7
    - 3.3
    install: pip install .
    script: python setup.py test

    View Slide

  7. Senko Rasic (@senkorasic) goodcode.io

    View Slide

  8. Senko Rasic (@senkorasic) goodcode.io

    View Slide

  9. Senko Rasic (@senkorasic) goodcode.io
    bonus: lint on CI
    install: pip install . flake8
    script:
    - flake8 .
    - python setup.py test

    View Slide

  10. Senko Rasic (@senkorasic) goodcode.io
    Step 3:
    coverage
    install: pip install . coverage
    script: coverage python setup.py test

    View Slide

  11. Senko Rasic (@senkorasic) goodcode.io
    coveralls.io
    install:
    - pip install . coverage coveralls
    script:
    - coverage python setup.py test
    after_success:
    - coveralls

    View Slide

  12. Senko Rasic (@senkorasic) goodcode.io

    View Slide

  13. Senko Rasic (@senkorasic) goodcode.io
    Thanks!
    Q? grab me afterwards

    View Slide