Slide 1

Slide 1 text

SPEEDING UP YOUR CI 1

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

WHAT DO WE USE CI FOR? 3

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

WHAT WERE BUILD TIMES LIKE? 5

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

WHAT DID THEY BECOME? 7

Slide 8

Slide 8 text

> 14-16 minutes 8

Slide 9

Slide 9 text

HOW? 9

Slide 10

Slide 10 text

CACHING FRAMEWORKS 10

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

WHAT IS ROME? 12

Slide 13

Slide 13 text

UPGRADING PLAN 13

Slide 14

Slide 14 text

14

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

ONLY GETTING CODE COVERAGE WHEN TESTS CHANGE 16

Slide 17

Slide 17 text

> 2 minutes less 17

Slide 18

Slide 18 text

REMOVE POINTLESS INDEXING 18

Slide 19

Slide 19 text

19

Slide 20

Slide 20 text

> Saves 1 or 2 minutes COMPILER_INDEX_STORE_ENABLE=NO 20

Slide 21

Slide 21 text

OTHER TECHNIQUES I LOOK FORWARD TO 21

Slide 22

Slide 22 text

> Parallelization > Separate modules 22

Slide 23

Slide 23 text

CONCLUSION 23

Slide 24

Slide 24 text

MESS AROUND 24