SlideShare uma empresa Scribd logo
1 de 67
Baixar para ler offline
LEVEL UP YOUR GAME WITH TRAVISCI:
FROM ZERO TO HERO IN 45 MINUTES
By: Florian Harr
@caffeineflo
iOS Engineer
stablekernel.com
Hi, I’m [Florian Harr].
Hi, I’m [Florian Harr].
• 10/2011 - 10/2014 Bachelors Degree in Computer Science, Stuttgart Germany
• 10/2014 - 01/2016 iOS Software Engineer @ Big Nerd Ranch, Atlanta, GA
• 01/2016 - Today iOS Software Engineer @ Stable|Kernel, Atlanta, GA
We’re stable|kernel.
stable|kernel is an Atlanta-based mobile development company 

to craft smartly-designed mobile applications that connect brands 

directly with their users. 



Our team of engineers and designers takes clients from 

strategy through design, development and deployment, 

ensuring timely delivery of the highest quality applications.
@stablekernel
@stablekernel
Extreme programming (XP) is a software
development methodology which is
intended to improve software quality
and responsiveness to changing customer
requirements. As a type of agile software
development, it advocates frequent
"releases" in short development cycles,
which is intended to improve
productivity and introduce checkpoints
at which new customer requirements can
be adopted.
@stablekernel
kən-ˈtin-yü-əs ˌin-tə-ˈgrā-shən
Continuous Integration
@stablekernel
kən-ˈtin-yü-əs ˌin-tə-ˈgrā-shən
Continuous Integration
Continuous Integration (CI) is a 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.
adjective noun
@stablekernel
kən-ˈtin-yü-əs ˌin-tə-ˈgrā-shən
Continuous Integration
Continuous Integration (CI) is a 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.
adjective noun
@stablekernel
Continuous Integration (CI) is a
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.
Commit Code
Let CI do it’s
thing
??
Profit
@stablekernel
@stablekernel
@stablekernel
git commit
git push
service hook
issues build(s)
runs build(s)
notifies
CI Layer
Git Layer
@stablekernel
@stablekernel
Free for public GitHub repositories
Paid for GitHub hosted private repositories
@stablekernel
Xcode Versions:
• 6.1
• 6.2
• 6.3
• 6.4
• 7
• 7.1
• 7.2
• 7.3.1
• 8
Simulator:
• iPhone 4s - 7 Plus
• Apple Watch 38 + 42 mm
• Apple TV 1080p
SDK:
• 7.0
• 7.1
• 8.1
• 8.2
• 8.3
• 8.4
• 9
• 9.1
• 9.2
• 9.3
• 10
• watchOS 2
• watchOS 2.1
• watchOS 2.2
• watchOS 3
• tvOS 9.0
• tvOS 9.1
• tvOS 9.2
• tvOS 10.0
@stablekernel
Configured through .travis.yml file
@stablekernel
Configured through .travis.yml file
.travis.yml
language: objective-c
osx_image: xcode8
xcode_project: FizzBuzz.xcodeproj
xcode_scheme: FizzBuzz
@stablekernel
Configured through .travis.yml file
before_install:
install:
before_script:
script:
after_success:
(after_failure:)
(before_deploy:)
(deploy:)
(after_deploy:)
(after_script:)
.travis.yml
language:
@stablekernel
Configured through .travis.yml file
before_install:
install:
before_script:
script:
after_success:
(after_failure:)
(before_deploy:)
(deploy:)
(after_deploy:)
(after_script:)
You can do everything that you can do in your Terminal(.app)….
.travis.yml
language:
@stablekernel
Configured through .travis.yml file
You can do everything that you can do in your Terminal(.app)…
…. which is pretty much everything*
*exclusions and smaller limitations reserved
.travis.yml
language:
show live demo after this?!

Maybe live demo could show app and
right afterwards integration results
including snapshots
before_install:
install:
before_script:
script:
after_success:
(after_failure:)
(before_deploy:)
(deploy:)
(after_deploy:)
(after_script:)
@stablekernel
From Zero To Hero in 45 Minutes ….
@stablekernel
@stablekernel
@stablekernel
Florians-MacBookPro:FizzBuzz evils$ fastlane init
[23:20:03]: Detected iOS/Mac project in current directory...
[23:20:03]: This setup will help you get up and running in no time.
[23:20:03]: fastlane will check what tools you're already using and set up
[23:20:03]: the tool automatically for you. Have fun!
[23:20:03]: Created new folder './fastlane'.
[23:20:03]: $ xcodebuild clean -showBuildSettings -project ./FizzBuzz.xcodeproj
Your Apple ID (e.g. fastlane@krausefx.com): harr.florian@gmx.de
[23:20:08]: Verifying if app is available on the Apple Developer Portal and iTunes Connect...
[23:20:08]: Starting login with user 'harr.florian@gmx.de'
Multiple teams found on the Developer Portal, please enter the number of the team you want to use:
1) Z6QSU67DFL "FeMoSo Systems GmbH" (Company/Organization)
2) DR3HWS5LMB "Florian Harr" (Individual)
3) CM487E42JY "Rheem Manufacturing Company" (Company/Organization)
4) R9AR4U6NWF "Stable Kernel, LLC" (Company/Organization)
2
+----------------+-------------------------------------------------------+
| Detected Values |
+----------------+-------------------------------------------------------+
| Apple ID | harr.florian@gmx.de |
| App Name | FizzBuzz |
| App Identifier | com.iFlorian.FizzBuzz |
| Project | /Users/evils/Repositories/FizzBuzz/FizzBuzz.xcodeproj |
+----------------+-------------------------------------------------------+
[23:20:12]: This app identifier doesn't exist on iTunes Connect yet, it will be created for you
[23:20:12]: This app identifier doesn't exist on the Apple Developer Portal yet, it will be created for you
Please confirm the above values (y/n)
y
[23:20:22]: Created new file './fastlane/Appfile'. Edit it to manage your preferred app metadata information.
[23:20:22]: Creating the app on iTunes Connect and the Apple Developer Portal
[23:20:22]: $ xcodebuild clean -showBuildSettings -project ./FizzBuzz.xcodeproj
23:21:24]: Successfully finished setting up fastlane
@stablekernel
Florians-MacBookPro:FizzBuzz evils$ fastlane init
[23:20:03]: Detected iOS/Mac project in current
directory...
[23:20:03]: This setup will help you get up and
running in no time.
[23:20:03]: fastlane will check what tools you're
already using and set up
[23:20:03]: the tool automatically for you. Have fun!
[23:20:03]: Created new folder './fastlane'.
[23:20:03]: $ xcodebuild clean -showBuildSettings -
project ./FizzBuzz.xcodeproj
Your Apple ID (e.g. fastlane@krausefx.com):
harr.florian@gmx.de
[23:20:08]: Verifying if app is available on the
Apple Developer Portal and iTunes Connect...
@stablekernel
Florians-MacBookPro:FizzBuzz evils$ fastlane init
[23:20:03]: Detected iOS/Mac project in current
directory...
[23:20:03]: This setup will help you get up and
running in no time.
[23:20:03]: fastlane will check what tools you're
already using and set up
[23:20:03]: the tool automatically for you. Have fun!
[23:20:03]: Created new folder './fastlane'.
[23:20:03]: $ xcodebuild clean -showBuildSettings -
project ./FizzBuzz.xcodeproj
Your Apple ID (e.g. fastlane@krausefx.com):
harr.florian@gmx.de
[23:20:08]: Verifying if app is available on the
Apple Developer Portal and iTunes Connect...
@stablekernel
Florians-MacBookPro:FizzBuzz evils$ fastlane init
[23:20:03]: Detected iOS/Mac project in current
directory...
[23:20:03]: This setup will help you get up and
running in no time.
[23:20:03]: fastlane will check what tools you're
already using and set up
[23:20:03]: the tool automatically for you. Have fun!
[23:20:03]: Created new folder './fastlane'.
[23:20:03]: $ xcodebuild clean -showBuildSettings -
project ./FizzBuzz.xcodeproj
Your Apple ID (e.g. fastlane@krausefx.com):
harr.florian@gmx.de
[23:20:08]: Verifying if app is available on the
Apple Developer Portal and iTunes Connect...
@stablekernel
Florians-MacBookPro:FizzBuzz evils$ fastlane init
[23:20:03]: Detected iOS/Mac project in current
directory...
[23:20:03]: This setup will help you get up and
running in no time.
[23:20:03]: fastlane will check what tools you're
already using and set up
[23:20:03]: the tool automatically for you. Have fun!
[23:20:03]: Created new folder './fastlane'.
[23:20:03]: $ xcodebuild clean -showBuildSettings -
project ./FizzBuzz.xcodeproj
Your Apple ID (e.g. fastlane@krausefx.com):
harr.florian@gmx.de
[23:20:08]: Verifying if app is available on the
Apple Developer Portal and iTunes Connect...
@stablekernel
Florians-MacBookPro:FizzBuzz evils$ fastlane init
[23:20:03]: Detected iOS/Mac project in current
directory...
[23:20:03]: This setup will help you get up and
running in no time.
[23:20:03]: fastlane will check what tools you're
already using and set up
[23:20:03]: the tool automatically for you. Have fun!
[23:20:03]: Created new folder './fastlane'.
[23:20:03]: $ xcodebuild clean -showBuildSettings -
project ./FizzBuzz.xcodeproj
Your Apple ID (e.g. fastlane@krausefx.com):
harr.florian@gmx.de
[23:20:08]: Verifying if app is available on the
Apple Developer Portal and iTunes Connect...
@stablekernel
Sometimes builds fail ….
@stablekernel
Sometimes builds fail ….
@stablekernel
Sometimes builds fail ….
Search the logs
@stablekernel
Sometimes builds fail ….
Search the logs SSH into the VM
https://gist.github.com/jedi4ever/7677d62f1414c28a1a8c
@stablekernel
Sometimes builds fail ….
Search the logs SSH into the VM
@stablekernel
Sometimes builds fail ….
Search the logs SSH into the VM
@stablekernel
Sometimes builds fail ….
Search the logs SSH into the VM
@stablekernel
Sometimes builds fail ….
Search the logs
SSH into the VM
https://gist.github.com/jedi4ever/
Replicate your VM Environment
@stablekernel
Extensions of CI
@stablekernel
Extensions of CI
Fabric
Lint
UI Testing
Code Coverage
coveralls.io
SnapshotsAppStore Submission
Beta Builds
Changelogs PivotalTracker
Watermarks
Matrix Builds
@stablekernel
Extensions of CI
Fabric
Lint
UI Testing
Code Coverage
coveralls.io
SnapshotsAppStore Submission
Beta Builds
Changelogs PivotalTracker
Watermarks
Matrix Builds
@stablekernel
Extensions of CI
Fabric
Lint
UI Testing
Code Coverage
coveralls.io
SnapshotsAppStore Submission
Beta Builds
Changelogs
PivotalTracker
Watermarks
Matrix Builds
@stablekernel
Extensions of CI
Fabric
Lint
UI Testing
Code Coveragecoveralls.io
SnapshotsAppStore Submission
Beta Builds
Changelogs
PivotalTracker
Watermarks
Matrix Builds
@stablekernel
Extensions of CI
Fabric
Lint
UI Testing
Code Coveragecoveralls.io
SnapshotsAppStore Submission
Beta Builds
Changelogs
PivotalTracker
Watermarks
Matrix Builds
@stablekernel
Extensions of CI
Fabric
Lint
UI Testing
Code Coveragecoveralls.io
Snapshots
AppStore Submission
Beta Builds
Changelogs
PivotalTracker
Watermarks
Matrix Builds
@stablekernel
Extensions of CI
Fabric
Lint
UI Testing
Code Coveragecoveralls.io
Snapshots
AppStore Submission Beta Builds
Changelogs
PivotalTracker
Watermarks
Matrix Builds
@stablekernel
Extensions of CI
Fabric
Lint
UI Testing
Code Coveragecoveralls.io
Snapshots
AppStore Submission Beta Builds
Changelogs
PivotalTracker
Watermarks
Matrix Builds
@stablekernel
Extensions of CI
Fabric
Lint
UI Testing
Code Coveragecoveralls.io
Snapshots
AppStore Submission Beta Builds
Changelogs
PivotalTracker
Matrix Builds
Watermarks
@stablekernel
Extensions of CI
Fabric
Lint
UI Testing
Code Coveragecoveralls.io
Snapshots
AppStore Submission Beta Builds
Changelogs
PivotalTracker
Matrix Builds
Watermarks
@stablekernel
Extensions of CI
Examples:
• https://github.com/fastlane/examples
• https://github.com/AFNetworking/AFNetworking
• https://github.com/danielgindi/Charts
Fabric
Lint
UI Testing
Code Coverage
coveralls.io
SnapshotsAppStore Submission
Beta Builds
Changelogs PivotalTracker
Watermarks
Matrix Builds
@stablekernel
Other CI Solutions
@stablekernel
Alternatives to TravisCI
@stablekernel
Alternatives to TravisCI
• Similar to a managed full stack Travis CI Setup
• Includes TestFlight like beta environment
• Compatible with:
• BitBucket
• GitHub
• GitLab
@stablekernel
Alternatives to TravisCI
@stablekernel
Alternatives to TravisCI
• Continuous Integration + Deployment Platform
• Configuration through circle.yml
• Integrates with:
• GitHub
• Bitbucket
• GitHub Enterprise
@stablekernel
Alternatives to TravisCI
@stablekernel
Alternatives to TravisCI
Xcode Server:
• Self Hosted
• Has been problematic in the past
• Integration with GitHub problematic
@stablekernel
Alternatives to TravisCI
@stablekernel
Alternatives to TravisCI
• Self Hosted
• Not always up to date
• Relying on single open source project?!
@stablekernel
Conclusion
@stablekernel
Conclusion
Why do we do all of this?
@stablekernel
Conclusion
Why do we do all of this?
@stablekernel
Conclusion
Why do we do all of this?
• Avoid last minute emergencies early on
• Ability to ship at any point
• Regularly run tests
• Save hours and hours of your time through automation
https://github.com/evils/FizzBuzz
Find Examples and more at ….
@stablekernel
Conclusion
And if that’s not reason enough ….
Questions?
Business Inquiries:
Sarah Woodward
Director of Business Development
sarah.woodward@stablekernel.com
Florian Harr
@caffeineflo
florian.harr@stablekernel.com
blog.stablekernel.com
@stablekernel

Mais conteúdo relacionado

Mais procurados

The Basic Concept Of IOC
The Basic Concept Of IOCThe Basic Concept Of IOC
The Basic Concept Of IOC
Carl Lu
 
Web注入+http漏洞等描述
Web注入+http漏洞等描述Web注入+http漏洞等描述
Web注入+http漏洞等描述
fangjiafu
 

Mais procurados (20)

Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...
 
Seven Versions of One Web Application
Seven Versions of One Web ApplicationSeven Versions of One Web Application
Seven Versions of One Web Application
 
The Basic Concept Of IOC
The Basic Concept Of IOCThe Basic Concept Of IOC
The Basic Concept Of IOC
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
 
DataFX - JavaOne 2013
DataFX - JavaOne 2013DataFX - JavaOne 2013
DataFX - JavaOne 2013
 
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
JavaFX 2 and Scala - Like Milk and Cookies (33rd Degrees)
 
Boost your angular app with web workers
Boost your angular app with web workersBoost your angular app with web workers
Boost your angular app with web workers
 
How to build an AngularJS backend-ready app WITHOUT BACKEND
How to build an AngularJS backend-ready app WITHOUT BACKEND How to build an AngularJS backend-ready app WITHOUT BACKEND
How to build an AngularJS backend-ready app WITHOUT BACKEND
 
Activator and Reactive at Play NYC meetup
Activator and Reactive at Play NYC meetupActivator and Reactive at Play NYC meetup
Activator and Reactive at Play NYC meetup
 
Workshop 26: React Native - The Native Side
Workshop 26: React Native - The Native SideWorkshop 26: React Native - The Native Side
Workshop 26: React Native - The Native Side
 
Dart for Java Developers
Dart for Java DevelopersDart for Java Developers
Dart for Java Developers
 
Understanding Framework Architecture using Eclipse
Understanding Framework Architecture using EclipseUnderstanding Framework Architecture using Eclipse
Understanding Framework Architecture using Eclipse
 
DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)DataFX 8 (JavaOne 2014)
DataFX 8 (JavaOne 2014)
 
Web注入+http漏洞等描述
Web注入+http漏洞等描述Web注入+http漏洞等描述
Web注入+http漏洞等描述
 
Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)Node.js vs Play Framework (with Japanese subtitles)
Node.js vs Play Framework (with Japanese subtitles)
 
Building scalable applications with angular js
Building scalable applications with angular jsBuilding scalable applications with angular js
Building scalable applications with angular js
 
Rails Best Practices
Rails Best PracticesRails Best Practices
Rails Best Practices
 
CoffeeScript - TechTalk 21/10/2013
CoffeeScript - TechTalk 21/10/2013CoffeeScript - TechTalk 21/10/2013
CoffeeScript - TechTalk 21/10/2013
 
Http4s, Doobie and Circe: The Functional Web Stack
Http4s, Doobie and Circe: The Functional Web StackHttp4s, Doobie and Circe: The Functional Web Stack
Http4s, Doobie and Circe: The Functional Web Stack
 
Academy PRO: React native - navigation
Academy PRO: React native - navigationAcademy PRO: React native - navigation
Academy PRO: React native - navigation
 

Semelhante a Connect.Tech- Level Up Your Game With TravisCI

Continous Integration for iOS Projects
Continous Integration for iOS ProjectsContinous Integration for iOS Projects
Continous Integration for iOS Projects
Ciprian Redinciuc
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"
DataArt
 

Semelhante a Connect.Tech- Level Up Your Game With TravisCI (20)

Continous Integration for iOS Projects
Continous Integration for iOS ProjectsContinous Integration for iOS Projects
Continous Integration for iOS Projects
 
Fastlane for Androidによる継続的デリバリー
Fastlane for Androidによる継続的デリバリーFastlane for Androidによる継続的デリバリー
Fastlane for Androidによる継続的デリバリー
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
 
Fastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS AppsFastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS Apps
 
Fastlane
FastlaneFastlane
Fastlane
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
 
C# Production Debugging Made Easy
 C# Production Debugging Made Easy C# Production Debugging Made Easy
C# Production Debugging Made Easy
 
FIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT Agents
 
Continuous integration at CartoDB
Continuous integration at CartoDBContinuous integration at CartoDB
Continuous integration at CartoDB
 
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...
AWS re:Invent 2016: DevOps on AWS: Accelerating Software Delivery with the AW...
 
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
 
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
 
Python Diamond Tool
Python Diamond ToolPython Diamond Tool
Python Diamond Tool
 
Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013
 
OSX/Pirrit: The blue balls of OS X adware
OSX/Pirrit: The blue balls of OS X adwareOSX/Pirrit: The blue balls of OS X adware
OSX/Pirrit: The blue balls of OS X adware
 
Serverless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud PlatformServerless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud Platform
 

Último

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Último (20)

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 

Connect.Tech- Level Up Your Game With TravisCI

  • 1. LEVEL UP YOUR GAME WITH TRAVISCI: FROM ZERO TO HERO IN 45 MINUTES By: Florian Harr @caffeineflo iOS Engineer stablekernel.com
  • 3. Hi, I’m [Florian Harr]. • 10/2011 - 10/2014 Bachelors Degree in Computer Science, Stuttgart Germany • 10/2014 - 01/2016 iOS Software Engineer @ Big Nerd Ranch, Atlanta, GA • 01/2016 - Today iOS Software Engineer @ Stable|Kernel, Atlanta, GA
  • 4. We’re stable|kernel. stable|kernel is an Atlanta-based mobile development company 
 to craft smartly-designed mobile applications that connect brands 
 directly with their users. 
 
 Our team of engineers and designers takes clients from 
 strategy through design, development and deployment, 
 ensuring timely delivery of the highest quality applications.
  • 6. @stablekernel Extreme programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.
  • 8. @stablekernel kən-ˈtin-yü-əs ˌin-tə-ˈgrā-shən Continuous Integration Continuous Integration (CI) is a 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. adjective noun
  • 9. @stablekernel kən-ˈtin-yü-əs ˌin-tə-ˈgrā-shən Continuous Integration Continuous Integration (CI) is a 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. adjective noun
  • 10. @stablekernel Continuous Integration (CI) is a 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.
  • 11. Commit Code Let CI do it’s thing ?? Profit
  • 14. @stablekernel git commit git push service hook issues build(s) runs build(s) notifies CI Layer Git Layer
  • 16. @stablekernel Free for public GitHub repositories Paid for GitHub hosted private repositories
  • 17. @stablekernel Xcode Versions: • 6.1 • 6.2 • 6.3 • 6.4 • 7 • 7.1 • 7.2 • 7.3.1 • 8 Simulator: • iPhone 4s - 7 Plus • Apple Watch 38 + 42 mm • Apple TV 1080p SDK: • 7.0 • 7.1 • 8.1 • 8.2 • 8.3 • 8.4 • 9 • 9.1 • 9.2 • 9.3 • 10 • watchOS 2 • watchOS 2.1 • watchOS 2.2 • watchOS 3 • tvOS 9.0 • tvOS 9.1 • tvOS 9.2 • tvOS 10.0
  • 19. @stablekernel Configured through .travis.yml file .travis.yml language: objective-c osx_image: xcode8 xcode_project: FizzBuzz.xcodeproj xcode_scheme: FizzBuzz
  • 20. @stablekernel Configured through .travis.yml file before_install: install: before_script: script: after_success: (after_failure:) (before_deploy:) (deploy:) (after_deploy:) (after_script:) .travis.yml language:
  • 21. @stablekernel Configured through .travis.yml file before_install: install: before_script: script: after_success: (after_failure:) (before_deploy:) (deploy:) (after_deploy:) (after_script:) You can do everything that you can do in your Terminal(.app)…. .travis.yml language:
  • 22. @stablekernel Configured through .travis.yml file You can do everything that you can do in your Terminal(.app)… …. which is pretty much everything* *exclusions and smaller limitations reserved .travis.yml language: show live demo after this?! Maybe live demo could show app and right afterwards integration results including snapshots before_install: install: before_script: script: after_success: (after_failure:) (before_deploy:) (deploy:) (after_deploy:) (after_script:)
  • 23. @stablekernel From Zero To Hero in 45 Minutes ….
  • 26. @stablekernel Florians-MacBookPro:FizzBuzz evils$ fastlane init [23:20:03]: Detected iOS/Mac project in current directory... [23:20:03]: This setup will help you get up and running in no time. [23:20:03]: fastlane will check what tools you're already using and set up [23:20:03]: the tool automatically for you. Have fun! [23:20:03]: Created new folder './fastlane'. [23:20:03]: $ xcodebuild clean -showBuildSettings -project ./FizzBuzz.xcodeproj Your Apple ID (e.g. fastlane@krausefx.com): harr.florian@gmx.de [23:20:08]: Verifying if app is available on the Apple Developer Portal and iTunes Connect... [23:20:08]: Starting login with user 'harr.florian@gmx.de' Multiple teams found on the Developer Portal, please enter the number of the team you want to use: 1) Z6QSU67DFL "FeMoSo Systems GmbH" (Company/Organization) 2) DR3HWS5LMB "Florian Harr" (Individual) 3) CM487E42JY "Rheem Manufacturing Company" (Company/Organization) 4) R9AR4U6NWF "Stable Kernel, LLC" (Company/Organization) 2 +----------------+-------------------------------------------------------+ | Detected Values | +----------------+-------------------------------------------------------+ | Apple ID | harr.florian@gmx.de | | App Name | FizzBuzz | | App Identifier | com.iFlorian.FizzBuzz | | Project | /Users/evils/Repositories/FizzBuzz/FizzBuzz.xcodeproj | +----------------+-------------------------------------------------------+ [23:20:12]: This app identifier doesn't exist on iTunes Connect yet, it will be created for you [23:20:12]: This app identifier doesn't exist on the Apple Developer Portal yet, it will be created for you Please confirm the above values (y/n) y [23:20:22]: Created new file './fastlane/Appfile'. Edit it to manage your preferred app metadata information. [23:20:22]: Creating the app on iTunes Connect and the Apple Developer Portal [23:20:22]: $ xcodebuild clean -showBuildSettings -project ./FizzBuzz.xcodeproj 23:21:24]: Successfully finished setting up fastlane
  • 27. @stablekernel Florians-MacBookPro:FizzBuzz evils$ fastlane init [23:20:03]: Detected iOS/Mac project in current directory... [23:20:03]: This setup will help you get up and running in no time. [23:20:03]: fastlane will check what tools you're already using and set up [23:20:03]: the tool automatically for you. Have fun! [23:20:03]: Created new folder './fastlane'. [23:20:03]: $ xcodebuild clean -showBuildSettings - project ./FizzBuzz.xcodeproj Your Apple ID (e.g. fastlane@krausefx.com): harr.florian@gmx.de [23:20:08]: Verifying if app is available on the Apple Developer Portal and iTunes Connect...
  • 28. @stablekernel Florians-MacBookPro:FizzBuzz evils$ fastlane init [23:20:03]: Detected iOS/Mac project in current directory... [23:20:03]: This setup will help you get up and running in no time. [23:20:03]: fastlane will check what tools you're already using and set up [23:20:03]: the tool automatically for you. Have fun! [23:20:03]: Created new folder './fastlane'. [23:20:03]: $ xcodebuild clean -showBuildSettings - project ./FizzBuzz.xcodeproj Your Apple ID (e.g. fastlane@krausefx.com): harr.florian@gmx.de [23:20:08]: Verifying if app is available on the Apple Developer Portal and iTunes Connect...
  • 29. @stablekernel Florians-MacBookPro:FizzBuzz evils$ fastlane init [23:20:03]: Detected iOS/Mac project in current directory... [23:20:03]: This setup will help you get up and running in no time. [23:20:03]: fastlane will check what tools you're already using and set up [23:20:03]: the tool automatically for you. Have fun! [23:20:03]: Created new folder './fastlane'. [23:20:03]: $ xcodebuild clean -showBuildSettings - project ./FizzBuzz.xcodeproj Your Apple ID (e.g. fastlane@krausefx.com): harr.florian@gmx.de [23:20:08]: Verifying if app is available on the Apple Developer Portal and iTunes Connect...
  • 30. @stablekernel Florians-MacBookPro:FizzBuzz evils$ fastlane init [23:20:03]: Detected iOS/Mac project in current directory... [23:20:03]: This setup will help you get up and running in no time. [23:20:03]: fastlane will check what tools you're already using and set up [23:20:03]: the tool automatically for you. Have fun! [23:20:03]: Created new folder './fastlane'. [23:20:03]: $ xcodebuild clean -showBuildSettings - project ./FizzBuzz.xcodeproj Your Apple ID (e.g. fastlane@krausefx.com): harr.florian@gmx.de [23:20:08]: Verifying if app is available on the Apple Developer Portal and iTunes Connect...
  • 31. @stablekernel Florians-MacBookPro:FizzBuzz evils$ fastlane init [23:20:03]: Detected iOS/Mac project in current directory... [23:20:03]: This setup will help you get up and running in no time. [23:20:03]: fastlane will check what tools you're already using and set up [23:20:03]: the tool automatically for you. Have fun! [23:20:03]: Created new folder './fastlane'. [23:20:03]: $ xcodebuild clean -showBuildSettings - project ./FizzBuzz.xcodeproj Your Apple ID (e.g. fastlane@krausefx.com): harr.florian@gmx.de [23:20:08]: Verifying if app is available on the Apple Developer Portal and iTunes Connect...
  • 34.
  • 35. @stablekernel Sometimes builds fail …. Search the logs
  • 36. @stablekernel Sometimes builds fail …. Search the logs SSH into the VM https://gist.github.com/jedi4ever/7677d62f1414c28a1a8c
  • 37. @stablekernel Sometimes builds fail …. Search the logs SSH into the VM
  • 38. @stablekernel Sometimes builds fail …. Search the logs SSH into the VM
  • 39. @stablekernel Sometimes builds fail …. Search the logs SSH into the VM
  • 40. @stablekernel Sometimes builds fail …. Search the logs SSH into the VM https://gist.github.com/jedi4ever/ Replicate your VM Environment
  • 42. @stablekernel Extensions of CI Fabric Lint UI Testing Code Coverage coveralls.io SnapshotsAppStore Submission Beta Builds Changelogs PivotalTracker Watermarks Matrix Builds
  • 43. @stablekernel Extensions of CI Fabric Lint UI Testing Code Coverage coveralls.io SnapshotsAppStore Submission Beta Builds Changelogs PivotalTracker Watermarks Matrix Builds
  • 44. @stablekernel Extensions of CI Fabric Lint UI Testing Code Coverage coveralls.io SnapshotsAppStore Submission Beta Builds Changelogs PivotalTracker Watermarks Matrix Builds
  • 45. @stablekernel Extensions of CI Fabric Lint UI Testing Code Coveragecoveralls.io SnapshotsAppStore Submission Beta Builds Changelogs PivotalTracker Watermarks Matrix Builds
  • 46. @stablekernel Extensions of CI Fabric Lint UI Testing Code Coveragecoveralls.io SnapshotsAppStore Submission Beta Builds Changelogs PivotalTracker Watermarks Matrix Builds
  • 47. @stablekernel Extensions of CI Fabric Lint UI Testing Code Coveragecoveralls.io Snapshots AppStore Submission Beta Builds Changelogs PivotalTracker Watermarks Matrix Builds
  • 48. @stablekernel Extensions of CI Fabric Lint UI Testing Code Coveragecoveralls.io Snapshots AppStore Submission Beta Builds Changelogs PivotalTracker Watermarks Matrix Builds
  • 49. @stablekernel Extensions of CI Fabric Lint UI Testing Code Coveragecoveralls.io Snapshots AppStore Submission Beta Builds Changelogs PivotalTracker Watermarks Matrix Builds
  • 50. @stablekernel Extensions of CI Fabric Lint UI Testing Code Coveragecoveralls.io Snapshots AppStore Submission Beta Builds Changelogs PivotalTracker Matrix Builds Watermarks
  • 51. @stablekernel Extensions of CI Fabric Lint UI Testing Code Coveragecoveralls.io Snapshots AppStore Submission Beta Builds Changelogs PivotalTracker Matrix Builds Watermarks
  • 52. @stablekernel Extensions of CI Examples: • https://github.com/fastlane/examples • https://github.com/AFNetworking/AFNetworking • https://github.com/danielgindi/Charts Fabric Lint UI Testing Code Coverage coveralls.io SnapshotsAppStore Submission Beta Builds Changelogs PivotalTracker Watermarks Matrix Builds
  • 55. @stablekernel Alternatives to TravisCI • Similar to a managed full stack Travis CI Setup • Includes TestFlight like beta environment • Compatible with: • BitBucket • GitHub • GitLab
  • 57. @stablekernel Alternatives to TravisCI • Continuous Integration + Deployment Platform • Configuration through circle.yml • Integrates with: • GitHub • Bitbucket • GitHub Enterprise
  • 59. @stablekernel Alternatives to TravisCI Xcode Server: • Self Hosted • Has been problematic in the past • Integration with GitHub problematic
  • 61. @stablekernel Alternatives to TravisCI • Self Hosted • Not always up to date • Relying on single open source project?!
  • 65. @stablekernel Conclusion Why do we do all of this? • Avoid last minute emergencies early on • Ability to ship at any point • Regularly run tests • Save hours and hours of your time through automation https://github.com/evils/FizzBuzz Find Examples and more at ….
  • 67. Questions? Business Inquiries: Sarah Woodward Director of Business Development sarah.woodward@stablekernel.com Florian Harr @caffeineflo florian.harr@stablekernel.com blog.stablekernel.com @stablekernel