Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Speeding Up Your CI

Speeding Up Your CI

yhkaplan

March 28, 2019
Tweet

More Decks by yhkaplan

Other Decks in Programming

Transcript

  1. SPEEDING UP YOUR CI
    1

    View Slide

  2. SELF INTRO
    > Joshua Kaplan
    > minne @ GMO Pepabo
    > Danger-Swift contributer
    > Likes
    2

    View Slide

  3. WHAT DO WE USE CI FOR?
    3

    View Slide

  4. 1. Automated testing
    2. Static analysis (linting etc)
    3. Beta deployment
    4. Release build deployment
    4

    View Slide

  5. WHAT WERE BUILD TIMES LIKE?
    5

    View Slide

  6. > 1st build: 55 minutes
    > 2nd and later: 35 minutes
    6

    View Slide

  7. WHAT DID THEY BECOME?
    7

    View Slide

  8. > 14-16 minutes
    8

    View Slide

  9. HOW?
    9

    View Slide

  10. CACHING FRAMEWORKS
    10

    View Slide

  11. > Moving to Carthage and using Rome
    > Biggest impact: 55 to 33 minutes
    11

    View Slide

  12. WHAT IS ROME?
    12

    View Slide

  13. UPGRADING PLAN
    13

    View Slide

  14. 14

    View Slide

  15. > Not much to explain here
    > 33 to 20 minutes
    15

    View Slide

  16. ONLY GETTING CODE COVERAGE WHEN TESTS CHANGE
    16

    View Slide

  17. > 2 minutes less
    17

    View Slide

  18. REMOVE POINTLESS INDEXING
    18

    View Slide

  19. 19

    View Slide

  20. > Saves 1 or 2 minutes
    COMPILER_INDEX_STORE_ENABLE=NO
    20

    View Slide

  21. OTHER TECHNIQUES I LOOK FORWARD TO
    21

    View Slide

  22. > Parallelization
    > Separate modules
    22

    View Slide

  23. CONCLUSION
    23

    View Slide

  24. MESS AROUND
    24

    View Slide