SlideShare a Scribd company logo
Jenkins Setup
freestyle and pipeline for
iOS apps
By: Gagan Vishal Mishra
Introduction
In this tutorial we will do Jenkins CI/CD setup for iOS app in
 Freestyle
 Pipeline
Pre-Requisites: Must have
 Mac Machine.
 Java 1.8 installed on Mac.
 Latest Xcode install on Mac.
 Signing Certificate and Provisioning profile installed.
Installation
Jenkins native installer has been deprecated. Now Jenkins can
be install using the Homebrew package.
 Install Homebrew package https://brew.sh/ in you dont have
already.
One completed run following command on Terminal
 brew install jenkins-lts
Installations details link can be found on
https://jenkins.io/download/lts/macos/
Installation
When the installer finishes, open localhost:8080 in your
browser, you will get below screen
Copy and paste initialAdminPassword from given path and click
continue.
Installation
From Customize Jenkins screen, select ‘Install Suggested
plugins
Next screen will start download and installing of plugins.
Installation
This will take several minutes, If any installation is getting fail,
then click ‘Retry’ button
Next screen would be account setup screen.
Installation
Now create your admin account — here entering admin for
both Username and Password works fine.
Next screen would be Instance Configuration screen.
Installation
On this screen click ‘Not Now’
After this screen, one more screen will appear, click ‘Start using
Jenkins’. Now you are done with installation process. Next we
will configure Jenkins for Xcode plugin.
Add Xcode plugin
From left hand side
 Click ‘Manage Jenkins’
 Select ‘Manage plugins’
 Search for ‘Xcode Integration’ and ‘SICCI for Xcode plugin’
 Click on ‘Download and Install’
 Restart your Jenkins.
Now you can see these two plugins into ‘Installed plugin’.
Freestyle job
From left hand side, Click on ‘New Item’, On next page
 Enter your app name
 Select you ‘Freestyle project’
 Click ‘OK’
Freestyle job
On This screen, under ‘General tab’
 Enter app description.
 Select ‘GitHub project’ and enter you repo url.
Freestyle job
On the same screen, under ‘Source Code Management’
 Enter Repository URL.
 Select your Git credential under ‘Credentials’. You can add
you credentials by selecting ‘add’.
 Specify your branch.
Freestyle job
On the same screen, under ‘Build Triggers’
 Select ‘Trigger for GITScm polling’.
Here you can make your own choice depends on your
requirement.
Freestyle job
On the same screen, under ‘Build Environment’
Make following setup
Freestyle job
On the same screen, under ‘Build’, Click on ‘Add Build step’ and
select ‘Xcode’ from dropdown.
 Enter ‘Development team id’ which can be found from
Keychain.
 Click ‘Settings’
Freestyle job
On the same setting screen, under ‘Build’
 Select ‘Clean before build?’ checkmark.
 Enter Configuration, Xcode Schema File.
 Select ‘Pack application, build and sign .ipa’ checkmark,
 Add ‘Export method’ (Should be one in 'development', 'ad-
hoc', 'enterprise' or 'app-store'.)
Select following check mark
 Upload Bitcode
 Upload Symbols
 Compile Bitcode
 Pack on demand resources
 Strip Swift Symbols
Screen would be look like in next screen
Freestyle job
On the same setting screen, under ‘Build’
Freestyle job
On the same setting screen, under ‘Code signing & OS X
keychain options’ select automatic
Freestyle job
On the same screen, under ‘Advanced Xcode build options’
 Add your workspace filepath (if you have workspace)
 Add your build output directory. It will contain generated IPA
file.
Freestyle job
Now you are done with Freestyle job setup.
 Click on apply and save.
 Click on ‘Build Now’ from available options.
Now you are done with freestyle job. Yeahhhhhhh
Pipeline job
Pipeline jobs can be useful
 If you want to run multiple build in different environment.
 Run parallel tests.
 Add different steps in build process.
In a Jenkins pipeline, every job or event has some sort of
dependency on at least one or more events. For example
Pipeline job
Before setting pipeline job, we have to add GIT credentials
under ‘Credentials’.
Once credentials are added, note down ‘credentials id’ for
future auth process in Pipeline script.
Pipeline job
From left hand side on Jenkins, click ‘new item’
 Enter app name
 Select ‘Pipeline’
Pipeline job
On Next screen
 Enter app description and build trigger option (If required)
Pipeline job
On the same screen, under ‘Pipeline’
 Under definition, select ‘pipeline script’
 Copy Script in an preferred editor and edit branches,
credentialsId, bundleID, developmentTeamID,
xcodeWorkspaceFile, App store credentials etc and click
save.
Pipeline job
Now click on ‘Build Now’
 Build will start running.
 You can each steps of the build progress.
DONE, Now you are able to add CI/CD to your iOS projects.
Connect me on github/gagan5278

More Related Content

What's hot

Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with Jenkins
Edureka!
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
Sandeep Chawla
 
Jenkins
JenkinsJenkins
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
Vincent Composieux
 
A Java Microservices Spring Boot and Docker case study.
A Java Microservices Spring Boot and Docker case study.A Java Microservices Spring Boot and Docker case study.
A Java Microservices Spring Boot and Docker case study.
Subramanyam Vemala
 
Flutter
FlutterFlutter
Flutter
Dave Chao
 
Android Internals
Android InternalsAndroid Internals
Android Internals
Opersys inc.
 
Dependency injection presentation
Dependency injection presentationDependency injection presentation
Dependency injection presentation
Ahasanul Kalam Akib
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to Maven
Onkar Deshpande
 
Introduction to Spring's Dependency Injection
Introduction to Spring's Dependency InjectionIntroduction to Spring's Dependency Injection
Introduction to Spring's Dependency Injection
Richard Paul
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Opersys inc.
 
Maven
MavenMaven
Android Internals
Android InternalsAndroid Internals
Android Internals
Opersys inc.
 
Coding standards
Coding standardsCoding standards
Coding standards
Mimoh Ojha
 
Email authentication using firebase auth + flutter
Email authentication using firebase auth + flutterEmail authentication using firebase auth + flutter
Email authentication using firebase auth + flutter
Katy Slemon
 
Installing and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command lineInstalling and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command line
dotCloud
 
Maven
MavenMaven
Maven
Emprovise
 
Angular modules in depth
Angular modules in depthAngular modules in depth
Angular modules in depth
Christoffer Noring
 
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
Sam Brannen
 
Intégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ciIntégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ci
wiemfourati
 

What's hot (20)

Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with Jenkins
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
Jenkins
JenkinsJenkins
Jenkins
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
 
A Java Microservices Spring Boot and Docker case study.
A Java Microservices Spring Boot and Docker case study.A Java Microservices Spring Boot and Docker case study.
A Java Microservices Spring Boot and Docker case study.
 
Flutter
FlutterFlutter
Flutter
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Dependency injection presentation
Dependency injection presentationDependency injection presentation
Dependency injection presentation
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to Maven
 
Introduction to Spring's Dependency Injection
Introduction to Spring's Dependency InjectionIntroduction to Spring's Dependency Injection
Introduction to Spring's Dependency Injection
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
 
Maven
MavenMaven
Maven
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Coding standards
Coding standardsCoding standards
Coding standards
 
Email authentication using firebase auth + flutter
Email authentication using firebase auth + flutterEmail authentication using firebase auth + flutter
Email authentication using firebase auth + flutter
 
Installing and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command lineInstalling and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command line
 
Maven
MavenMaven
Maven
 
Angular modules in depth
Angular modules in depthAngular modules in depth
Angular modules in depth
 
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
 
Intégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ciIntégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ci
 

Similar to Jenkins CI/CD setup for iOS in Mac OSX

Jenkins tutorial for beginners
Jenkins tutorial for beginnersJenkins tutorial for beginners
Jenkins tutorial for beginners
BugRaptors
 
Using galen framework for automated cross browser layout testing
Using galen framework for automated cross browser layout testingUsing galen framework for automated cross browser layout testing
Using galen framework for automated cross browser layout testing
Sarah Elson
 
Containers Lab
Containers Lab Containers Lab
Containers Lab
Dev_Events
 
Mixpanel Integration in Android
Mixpanel Integration in AndroidMixpanel Integration in Android
Mixpanel Integration in Android
mobi fly
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
Pratik Patel
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - Beginners
Ambarish Hazarnis
 
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
InnovationM
 
Jenkins Setup Document
Jenkins Setup DocumentJenkins Setup Document
Jenkins Setup Document
mobi fly
 
Lesson 02 - React Native Development Environment Setup
Lesson 02 - React Native Development Environment SetupLesson 02 - React Native Development Environment Setup
Lesson 02 - React Native Development Environment Setup
University of Catania
 
CIS 170 Become Exceptional--cis170.com
CIS 170 Become Exceptional--cis170.comCIS 170 Become Exceptional--cis170.com
CIS 170 Become Exceptional--cis170.com
claric131
 
Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson
Dev_Events
 
Final NEWS.pdf
Final NEWS.pdfFinal NEWS.pdf
Final NEWS.pdf
RebaMaheen
 
Final NewsApp.pdf
Final NewsApp.pdfFinal NewsApp.pdf
Final NewsApp.pdf
RebaMaheen
 
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
Goutam Biswas
 
Compose Camp - Session2.pdf
Compose Camp - Session2.pdfCompose Camp - Session2.pdf
Compose Camp - Session2.pdf
GDSCAtharvaCollegeOf
 
CIS 170 Inspiring Innovation -- cis170.com
CIS 170 Inspiring Innovation -- cis170.comCIS 170 Inspiring Innovation -- cis170.com
CIS 170 Inspiring Innovation -- cis170.com
kopiko104
 

Similar to Jenkins CI/CD setup for iOS in Mac OSX (20)

Jenkins tutorial for beginners
Jenkins tutorial for beginnersJenkins tutorial for beginners
Jenkins tutorial for beginners
 
CI & CD- mobile application
CI & CD- mobile applicationCI & CD- mobile application
CI & CD- mobile application
 
CI & CD- mobile application
CI & CD- mobile applicationCI & CD- mobile application
CI & CD- mobile application
 
Using galen framework for automated cross browser layout testing
Using galen framework for automated cross browser layout testingUsing galen framework for automated cross browser layout testing
Using galen framework for automated cross browser layout testing
 
Containers Lab
Containers Lab Containers Lab
Containers Lab
 
Mixpanel Integration in Android
Mixpanel Integration in AndroidMixpanel Integration in Android
Mixpanel Integration in Android
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - Beginners
 
Homestead demo
Homestead demoHomestead demo
Homestead demo
 
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
 
Jenkins Setup Document
Jenkins Setup DocumentJenkins Setup Document
Jenkins Setup Document
 
Lesson 02 - React Native Development Environment Setup
Lesson 02 - React Native Development Environment SetupLesson 02 - React Native Development Environment Setup
Lesson 02 - React Native Development Environment Setup
 
CIS 170 Become Exceptional--cis170.com
CIS 170 Become Exceptional--cis170.comCIS 170 Become Exceptional--cis170.com
CIS 170 Become Exceptional--cis170.com
 
Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson
 
Final NEWS.pdf
Final NEWS.pdfFinal NEWS.pdf
Final NEWS.pdf
 
Final NewsApp.pdf
Final NewsApp.pdfFinal NewsApp.pdf
Final NewsApp.pdf
 
AndEngine
AndEngineAndEngine
AndEngine
 
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
 
Compose Camp - Session2.pdf
Compose Camp - Session2.pdfCompose Camp - Session2.pdf
Compose Camp - Session2.pdf
 
CIS 170 Inspiring Innovation -- cis170.com
CIS 170 Inspiring Innovation -- cis170.comCIS 170 Inspiring Innovation -- cis170.com
CIS 170 Inspiring Innovation -- cis170.com
 

More from Gagan Vishal Mishra

iOS Versions history
iOS Versions historyiOS Versions history
iOS Versions history
Gagan Vishal Mishra
 
Core data optimization
Core data optimizationCore data optimization
Core data optimization
Gagan Vishal Mishra
 
Linking between JIRA & GIT, Smart Commit Command
Linking between JIRA & GIT, Smart Commit Command Linking between JIRA & GIT, Smart Commit Command
Linking between JIRA & GIT, Smart Commit Command
Gagan Vishal Mishra
 
Backbase CXP Manager Setup
Backbase CXP Manager SetupBackbase CXP Manager Setup
Backbase CXP Manager Setup
Gagan Vishal Mishra
 
Dynamic databinding
Dynamic databindingDynamic databinding
Dynamic databinding
Gagan Vishal Mishra
 
Visual Formatting Language in iOS
Visual Formatting Language in iOSVisual Formatting Language in iOS
Visual Formatting Language in iOS
Gagan Vishal Mishra
 
Search API
Search APISearch API
IBDesignable & IBInspectible
IBDesignable & IBInspectibleIBDesignable & IBInspectible
IBDesignable & IBInspectible
Gagan Vishal Mishra
 
Core Data Performance Guide Line
Core Data Performance Guide LineCore Data Performance Guide Line
Core Data Performance Guide Line
Gagan Vishal Mishra
 

More from Gagan Vishal Mishra (9)

iOS Versions history
iOS Versions historyiOS Versions history
iOS Versions history
 
Core data optimization
Core data optimizationCore data optimization
Core data optimization
 
Linking between JIRA & GIT, Smart Commit Command
Linking between JIRA & GIT, Smart Commit Command Linking between JIRA & GIT, Smart Commit Command
Linking between JIRA & GIT, Smart Commit Command
 
Backbase CXP Manager Setup
Backbase CXP Manager SetupBackbase CXP Manager Setup
Backbase CXP Manager Setup
 
Dynamic databinding
Dynamic databindingDynamic databinding
Dynamic databinding
 
Visual Formatting Language in iOS
Visual Formatting Language in iOSVisual Formatting Language in iOS
Visual Formatting Language in iOS
 
Search API
Search APISearch API
Search API
 
IBDesignable & IBInspectible
IBDesignable & IBInspectibleIBDesignable & IBInspectible
IBDesignable & IBInspectible
 
Core Data Performance Guide Line
Core Data Performance Guide LineCore Data Performance Guide Line
Core Data Performance Guide Line
 

Recently uploaded

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 

Jenkins CI/CD setup for iOS in Mac OSX

  • 1. Jenkins Setup freestyle and pipeline for iOS apps By: Gagan Vishal Mishra
  • 2. Introduction In this tutorial we will do Jenkins CI/CD setup for iOS app in  Freestyle  Pipeline Pre-Requisites: Must have  Mac Machine.  Java 1.8 installed on Mac.  Latest Xcode install on Mac.  Signing Certificate and Provisioning profile installed.
  • 3. Installation Jenkins native installer has been deprecated. Now Jenkins can be install using the Homebrew package.  Install Homebrew package https://brew.sh/ in you dont have already. One completed run following command on Terminal  brew install jenkins-lts Installations details link can be found on https://jenkins.io/download/lts/macos/
  • 4. Installation When the installer finishes, open localhost:8080 in your browser, you will get below screen Copy and paste initialAdminPassword from given path and click continue.
  • 5. Installation From Customize Jenkins screen, select ‘Install Suggested plugins Next screen will start download and installing of plugins.
  • 6. Installation This will take several minutes, If any installation is getting fail, then click ‘Retry’ button Next screen would be account setup screen.
  • 7. Installation Now create your admin account — here entering admin for both Username and Password works fine. Next screen would be Instance Configuration screen.
  • 8. Installation On this screen click ‘Not Now’ After this screen, one more screen will appear, click ‘Start using Jenkins’. Now you are done with installation process. Next we will configure Jenkins for Xcode plugin.
  • 9. Add Xcode plugin From left hand side  Click ‘Manage Jenkins’  Select ‘Manage plugins’  Search for ‘Xcode Integration’ and ‘SICCI for Xcode plugin’  Click on ‘Download and Install’  Restart your Jenkins. Now you can see these two plugins into ‘Installed plugin’.
  • 10. Freestyle job From left hand side, Click on ‘New Item’, On next page  Enter your app name  Select you ‘Freestyle project’  Click ‘OK’
  • 11. Freestyle job On This screen, under ‘General tab’  Enter app description.  Select ‘GitHub project’ and enter you repo url.
  • 12. Freestyle job On the same screen, under ‘Source Code Management’  Enter Repository URL.  Select your Git credential under ‘Credentials’. You can add you credentials by selecting ‘add’.  Specify your branch.
  • 13. Freestyle job On the same screen, under ‘Build Triggers’  Select ‘Trigger for GITScm polling’. Here you can make your own choice depends on your requirement.
  • 14. Freestyle job On the same screen, under ‘Build Environment’ Make following setup
  • 15. Freestyle job On the same screen, under ‘Build’, Click on ‘Add Build step’ and select ‘Xcode’ from dropdown.  Enter ‘Development team id’ which can be found from Keychain.  Click ‘Settings’
  • 16. Freestyle job On the same setting screen, under ‘Build’  Select ‘Clean before build?’ checkmark.  Enter Configuration, Xcode Schema File.  Select ‘Pack application, build and sign .ipa’ checkmark,  Add ‘Export method’ (Should be one in 'development', 'ad- hoc', 'enterprise' or 'app-store'.) Select following check mark  Upload Bitcode  Upload Symbols  Compile Bitcode  Pack on demand resources  Strip Swift Symbols Screen would be look like in next screen
  • 17. Freestyle job On the same setting screen, under ‘Build’
  • 18. Freestyle job On the same setting screen, under ‘Code signing & OS X keychain options’ select automatic
  • 19. Freestyle job On the same screen, under ‘Advanced Xcode build options’  Add your workspace filepath (if you have workspace)  Add your build output directory. It will contain generated IPA file.
  • 20. Freestyle job Now you are done with Freestyle job setup.  Click on apply and save.  Click on ‘Build Now’ from available options. Now you are done with freestyle job. Yeahhhhhhh
  • 21. Pipeline job Pipeline jobs can be useful  If you want to run multiple build in different environment.  Run parallel tests.  Add different steps in build process. In a Jenkins pipeline, every job or event has some sort of dependency on at least one or more events. For example
  • 22. Pipeline job Before setting pipeline job, we have to add GIT credentials under ‘Credentials’. Once credentials are added, note down ‘credentials id’ for future auth process in Pipeline script.
  • 23. Pipeline job From left hand side on Jenkins, click ‘new item’  Enter app name  Select ‘Pipeline’
  • 24. Pipeline job On Next screen  Enter app description and build trigger option (If required)
  • 25. Pipeline job On the same screen, under ‘Pipeline’  Under definition, select ‘pipeline script’  Copy Script in an preferred editor and edit branches, credentialsId, bundleID, developmentTeamID, xcodeWorkspaceFile, App store credentials etc and click save.
  • 26. Pipeline job Now click on ‘Build Now’  Build will start running.  You can each steps of the build progress.
  • 27. DONE, Now you are able to add CI/CD to your iOS projects. Connect me on github/gagan5278

Editor's Notes

  1. Script available at https://gist.github.com/Gagan5278/f849ca27e7c647ee27b89c3e8cc86904
  2. Script available at https://gist.github.com/Gagan5278/f849ca27e7c647ee27b89c3e8cc86904
  3. Script available at https://gist.github.com/Gagan5278/f849ca27e7c647ee27b89c3e8cc86904