SlideShare a Scribd company logo
1 of 44
#ForceAcademyLA
Gear up for Continuous
Integration
with Salesforce DX,
Circle CI and Clayton
#ForceAcademyLA
Thank you Sponsors!
A Big shout out to our sponsors, without them these events would not
be possible:
#ForceAcademyLA#ForceAcademyLA
Hello!
DANIEL STANGE
Technical Architect
die.interaktiven GmbH & Co. KG
Found Salesforce boring in the dark ages -
Changed my mind.
Frankfurt, Germany User Group Leader
You can find me at:
@stangomat
https://www.linkedin.com/in/daniel-stange-
08474a49
https://trailhead.com/me/stangomat
Blog: blog.danielstange.de
#ForceAcademyLA
Let’s start CI from scratch!
#ForceAcademyLA
➜What do you need?
➜Why CI?
➜Basic Concepts
➜Design our workflow
➜Run our workflow
➜Add some QA measures
➜Next Steps
AGENDA
#ForceAcademyLA
Clone my demo repo if you want to work along
github.com/dstdia/ForceAcademy18
#ForceAcademyLA
1.
PREREQUISITES
#ForceAcademyLA
PREREQUISITES * What do you need to start?
➜ Salesforce DX Developer Hub
(your Prod or a trial dev hub org)
➜ A distributed version control system.
Github or Bitbucket are great
➜ The Salesforce CLI (part of Salesforce DX)
#ForceAcademyLA
2.
WHY CI?
#ForceAcademyLA
WHY CI?
Extra effort to save some time and effort?
➜ Structured Change Process:
Repeatable, automated, transparent
➜ Find bugs and flaws
➜ Deploy more often and earlier
➜ Reduce the effort to collect and deploy changes
➜ Reduce deployment failures
➜ Promote agile / iterative approach
➜ Introduce QA steps
#ForceAcademyLA
WHY PUT THE EFFORT IN A CI WORKFLOW
Test
Automation
Deployment
Automation
Development
Lifecycle
#ForceAcademyLA
WHY SFDX, Circle CI, Clayton?
➜ SFDX is the new default toolchain to manage
Salesforce customizations
➜ Circle CI and Clayton.io integrate seamlessly by
SSO with Bitbucket or Github…
➜ the entry tier is free
➜ (relatively) easy to configure
#ForceAcademyLA#ForceAcademyLA
Increase
Quality
More testing
less failing deployment
#ForceAcademyLA
What do you
Need?
3.
Prerequisites
#ForceAcademyLA
First Steps
➜ Checkout my repo from
http://bit.ly/DSTFA18-Code
➜ Sign up for a CircleCI trial:
https://circleci.com/
(single sign-on with Github or Bitbucket)
➜ Sign up for a Clayton.IO trial
https://getclayton.io
(single sign-on, again)
#ForceAcademyLA
ORCHESTRATION
sfdx force:org:create
sfdx force:source:push
sfdx force:apex:test:run
sfdx force:source:convert
sfdx force:mdapi:deploy
➜ Create an org
➜ Install your
source
➜ Run tests
➜ Convert to
Metadata
format
➜ Deploy to
target
#ForceAcademyLA
CI ORCHESTRATION
WORKFLOW
JOB(S)
STEPS
#ForceAcademyLA
CI ORCHESTRATION
WORKFLOW
JOB(S)
STEPS
STEPS
JOB(S)
STEPS
STEPS
#ForceAcademyLA
SLEEVES UP!
We’re getting our hands dirty
#ForceAcademyLA#ForceAcademyLA
HANDS ON – Choose your path
➜ Advanced Path:
Work along while I demo
➜ Easier Path:
Use the Cheatsheets in my repo’s wiki to
copy&paste:
http://bit.ly/DSTFA18-Wiki
➜ Easiest (or troubleshooter):
➜ Just read and along in the code, then make a
commit into master and check the results
#ForceAcademyLA#ForceAcademyLA
HANDS ON – What you will need
➜ A self signed certificate and a connected app in
your dev hub and all deploy targets
➜ Read how to do it here: http://bit.ly/SFDXCert
#ForceAcademyLA
4.
Let‘s Build
Our Flow
#ForceAcademyLA#ForceAcademyLA
Building our flow: STEPS
➜ Clone my repo:
➜ https://github.com/dstdia/ForceAcademy18
➜ Sign up and Connect to Circle CI
#ForceAcademyLA#ForceAcademyLA
Building our flow: The DX setup job
➜ Understand the Structure of the Jobs-Section
➜ Download and install Salesforce DX
➜ Authenticate your Org
➜ Create and Persist a Workspace
#ForceAcademyLA#ForceAcademyLA
#ForceAcademyLA#ForceAcademyLA
#ForceAcademyLA#ForceAcademyLA
#ForceAcademyLA#ForceAcademyLA
Remember…
➜ Jobs run in independent containers. You have to
persist what you want to use later…
➜ You’ll have to export paths to your containers later
➜ You can use caches and folders to store artefacts
#ForceAcademyLA#ForceAcademyLA
Building our flow: The Test Execution job
➜ Create a new scratch org
➜ Checkout source
➜ Push Source to test org
➜ Execute the Apex Unit Tests
➜ Persist the Results
➜ Can you add Lightning Testing Service on your own?
#ForceAcademyLA#ForceAcademyLA
#ForceAcademyLA#ForceAcademyLA
#ForceAcademyLA#ForceAcademyLA
Building our flow: The Deployment job
Typically you will need a Sandbox or Production Org to
deploy to.
We can use a scratch org here. Feel free to use an
existing DE or Sandbox instead.
➜ Convert Source to Metadata API format
➜ Deploy Metadata
#ForceAcademyLA#ForceAcademyLA
#ForceAcademyLA#ForceAcademyLA
Bringing it all together – the Workflow Section
Use filters and
requires to control
➜ order
➜ parallelism
➜ conditions
of the workflow
execution
#ForceAcademyLA#ForceAcademyLA
DONE!
➜ Make a change and commit to your repo…
➜ But don’t push yet…!
#ForceAcademyLA
5.
Running our Flow
#ForceAcademyLA#ForceAcademyLA
Running our flow: STEPS
o Now push your commit to origin
o Extra: Make any other change you like.
o Review your CircleCI workflow – did it complete?
Can you fix the error if you get any?
#ForceAcademyLA
6.
Adding a
Quality Gate
#ForceAcademyLA
Using static code analysis as Quality Gate
➜ Static code analysis checks your code/metadata
against pre -defined rules
➜ Clayton is Salesforce specific, engine is built to
“understand” the context of your code
➜ Clayton ”talks” to your CVS
➜ Violations appear as errors and can be used to
block merges
➜ Can be used in addition to or instead of local
static code analysis like PMD / ApexPMD
#ForceAcademyLA#ForceAcademyLA
Quality Gates: STEPS
➜ Sign up for Clayton.io
➜ Connect your repo for a code review
➜ Set up rules
#ForceAcademyLA#ForceAcademyLA
Quality Gates: TRY IT OUT
➜ Modify the Sample Class to violate your Clayton rule
set
➜ add DML in a loop
➜ Or an empty method
➜ Or a badly named method (like
Badly_namedMethod() )
➜ Commit & push
➜ Check the Clayton results
➜ Review your commit in Github / Bitbucket
#ForceAcademyLA
7.
Next Steps
#ForceAcademyLA#ForceAcademyLA
NEXT STEPS
➜ Break down monolythic metadata
➜ use 2nd generation packages to have smaller
installable bundles
➜ Parallelize jobs to save time
➜ Handle test results and failures
#ForceAcademyLA#ForceAcademyLA
Thank Y u!
Any questions?
You can find me at:
@stangomat
Daniel.stange@die-interaktiven.de
Code at github.com/dstdia/ForceAcademy18

More Related Content

What's hot

HTML5 for dummies
HTML5 for dummiesHTML5 for dummies
HTML5 for dummiesRan Bar-Zik
 
WordPress Development: Tracking Your Code With Version Control
WordPress Development: Tracking Your Code With Version ControlWordPress Development: Tracking Your Code With Version Control
WordPress Development: Tracking Your Code With Version ControlSterling Hamilton
 
So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016Joe Ferguson
 
Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)
Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)
Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)Ricardo Castelhano
 
QA 4 python
QA 4 pythonQA 4 python
QA 4 pythonBeDjango
 
Nitro for your Grails App: How to improve performance!! Greach' 18
Nitro for your Grails App: How to improve performance!!  Greach' 18Nitro for your Grails App: How to improve performance!!  Greach' 18
Nitro for your Grails App: How to improve performance!! Greach' 18Alberto Barón Cuevas
 
Patterns of agility, how to recognize and agile project when you see one
Patterns of agility, how to recognize and agile project when you see onePatterns of agility, how to recognize and agile project when you see one
Patterns of agility, how to recognize and agile project when you see oneVasco Duarte
 
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...PeckaDesign.cz
 
Best practices in pair programming
Best practices in pair programmingBest practices in pair programming
Best practices in pair programmingLucas Aquiles
 
CYA: Cover Your App
CYA: Cover Your AppCYA: Cover Your App
CYA: Cover Your AppJorge Ortiz
 
Democratic Deploys at Airbnb
Democratic Deploys at AirbnbDemocratic Deploys at Airbnb
Democratic Deploys at AirbnbNew Relic
 
Continuous Delivery: Playing with Immutable servers @commitporto 2016
Continuous Delivery: Playing with Immutable servers @commitporto 2016Continuous Delivery: Playing with Immutable servers @commitporto 2016
Continuous Delivery: Playing with Immutable servers @commitporto 2016João Cravo
 
Integration of automation framework with ci tools
Integration of automation framework with ci toolsIntegration of automation framework with ci tools
Integration of automation framework with ci toolsvodQA
 
Continuous test automation
Continuous test automationContinuous test automation
Continuous test automationViresh Doshi
 
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)Rami Rantala
 
Clean Code: Successive Refinement
Clean Code: Successive RefinementClean Code: Successive Refinement
Clean Code: Successive RefinementAli A Jalil
 

What's hot (20)

HTML5 for dummies
HTML5 for dummiesHTML5 for dummies
HTML5 for dummies
 
Paving roads
Paving roadsPaving roads
Paving roads
 
WordPress Development: Tracking Your Code With Version Control
WordPress Development: Tracking Your Code With Version ControlWordPress Development: Tracking Your Code With Version Control
WordPress Development: Tracking Your Code With Version Control
 
So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016So You Just Inherited a $Legacy Application… NomadPHP July 2016
So You Just Inherited a $Legacy Application… NomadPHP July 2016
 
Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)
Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)
Developing silverlight 4 applications with expression blend 4 (30 Abr 2010)
 
QA 4 python
QA 4 pythonQA 4 python
QA 4 python
 
Angular2 Upgrade
Angular2 UpgradeAngular2 Upgrade
Angular2 Upgrade
 
Api NodeJS con PureScript
Api NodeJS con PureScriptApi NodeJS con PureScript
Api NodeJS con PureScript
 
Nitro for your Grails App: How to improve performance!! Greach' 18
Nitro for your Grails App: How to improve performance!!  Greach' 18Nitro for your Grails App: How to improve performance!!  Greach' 18
Nitro for your Grails App: How to improve performance!! Greach' 18
 
Patterns of agility, how to recognize and agile project when you see one
Patterns of agility, how to recognize and agile project when you see onePatterns of agility, how to recognize and agile project when you see one
Patterns of agility, how to recognize and agile project when you see one
 
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...
 
Best practices in pair programming
Best practices in pair programmingBest practices in pair programming
Best practices in pair programming
 
Let Codenarc check if you write good Groovy code
Let Codenarc check if you write good Groovy codeLet Codenarc check if you write good Groovy code
Let Codenarc check if you write good Groovy code
 
CYA: Cover Your App
CYA: Cover Your AppCYA: Cover Your App
CYA: Cover Your App
 
Democratic Deploys at Airbnb
Democratic Deploys at AirbnbDemocratic Deploys at Airbnb
Democratic Deploys at Airbnb
 
Continuous Delivery: Playing with Immutable servers @commitporto 2016
Continuous Delivery: Playing with Immutable servers @commitporto 2016Continuous Delivery: Playing with Immutable servers @commitporto 2016
Continuous Delivery: Playing with Immutable servers @commitporto 2016
 
Integration of automation framework with ci tools
Integration of automation framework with ci toolsIntegration of automation framework with ci tools
Integration of automation framework with ci tools
 
Continuous test automation
Continuous test automationContinuous test automation
Continuous test automation
 
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)Continuous Delivery for Mobile platforms (iOS and a bit of Android)
Continuous Delivery for Mobile platforms (iOS and a bit of Android)
 
Clean Code: Successive Refinement
Clean Code: Successive RefinementClean Code: Successive Refinement
Clean Code: Successive Refinement
 

Similar to Gear up for Continuous Integration with Salesforce DX, Circle CI and Clayton

Setting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsSetting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsDaniel Stange
 
Force Academy '19: I fell in love with clicks AND code - here's what I learne...
Force Academy '19: I fell in love with clicks AND code - here's what I learne...Force Academy '19: I fell in love with clicks AND code - here's what I learne...
Force Academy '19: I fell in love with clicks AND code - here's what I learne...Daniel Stange
 
DevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure BootcampDevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure BootcampRichard Harbridge
 
Productionalizing Models through CI/CD Design with MLflow
Productionalizing Models through CI/CD Design with MLflowProductionalizing Models through CI/CD Design with MLflow
Productionalizing Models through CI/CD Design with MLflowDatabricks
 
Enterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't EnterpriseEnterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't EnterpriseChris Tankersley
 
A Day in the Life of a HipChat Developer
A Day in the Life of a HipChat DeveloperA Day in the Life of a HipChat Developer
A Day in the Life of a HipChat DeveloperAtlassian
 
Terraform - The Road to Self-Service
Terraform - The Road to Self-ServiceTerraform - The Road to Self-Service
Terraform - The Road to Self-ServiceRyan Boyce
 
Force Academy LA Trigger Framework
Force Academy LA Trigger FrameworkForce Academy LA Trigger Framework
Force Academy LA Trigger FrameworkAdam Olshansky
 
Developer 1: Workflows And Code Management
Developer 1: Workflows And Code ManagementDeveloper 1: Workflows And Code Management
Developer 1: Workflows And Code ManagementInflectra
 
Your Salesforce toolbelt – Practical recommendations to keep your Org healthy
Your Salesforce toolbelt – Practical recommendations to keep your Org healthyYour Salesforce toolbelt – Practical recommendations to keep your Org healthy
Your Salesforce toolbelt – Practical recommendations to keep your Org healthyYeurDreamin'
 
Ember.js - Harnessing Convention Over Configuration
Ember.js - Harnessing Convention Over ConfigurationEmber.js - Harnessing Convention Over Configuration
Ember.js - Harnessing Convention Over ConfigurationTracy Lee
 
JavaScript All The Things
JavaScript All The ThingsJavaScript All The Things
JavaScript All The ThingsJordan Yaker
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeSteve Mercier
 
Build and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsBuild and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsJeff Hull
 
React and GraphQL at Stripe
React and GraphQL at StripeReact and GraphQL at Stripe
React and GraphQL at StripeSashko Stubailo
 
ALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresJose Luis Soria
 
Feature Toggle XP Conference 2016 Kalpana Gulati
Feature Toggle  XP Conference 2016 Kalpana GulatiFeature Toggle  XP Conference 2016 Kalpana Gulati
Feature Toggle XP Conference 2016 Kalpana GulatiXP Conference India
 
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroJoomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroSteven Pignataro
 
Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Jess Chadwick
 
Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Peter Gfader
 

Similar to Gear up for Continuous Integration with Salesforce DX, Circle CI and Clayton (20)

Setting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsSetting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce Apps
 
Force Academy '19: I fell in love with clicks AND code - here's what I learne...
Force Academy '19: I fell in love with clicks AND code - here's what I learne...Force Academy '19: I fell in love with clicks AND code - here's what I learne...
Force Academy '19: I fell in love with clicks AND code - here's what I learne...
 
DevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure BootcampDevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure Bootcamp
 
Productionalizing Models through CI/CD Design with MLflow
Productionalizing Models through CI/CD Design with MLflowProductionalizing Models through CI/CD Design with MLflow
Productionalizing Models through CI/CD Design with MLflow
 
Enterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't EnterpriseEnterprise Workflows When You Aren't Enterprise
Enterprise Workflows When You Aren't Enterprise
 
A Day in the Life of a HipChat Developer
A Day in the Life of a HipChat DeveloperA Day in the Life of a HipChat Developer
A Day in the Life of a HipChat Developer
 
Terraform - The Road to Self-Service
Terraform - The Road to Self-ServiceTerraform - The Road to Self-Service
Terraform - The Road to Self-Service
 
Force Academy LA Trigger Framework
Force Academy LA Trigger FrameworkForce Academy LA Trigger Framework
Force Academy LA Trigger Framework
 
Developer 1: Workflows And Code Management
Developer 1: Workflows And Code ManagementDeveloper 1: Workflows And Code Management
Developer 1: Workflows And Code Management
 
Your Salesforce toolbelt – Practical recommendations to keep your Org healthy
Your Salesforce toolbelt – Practical recommendations to keep your Org healthyYour Salesforce toolbelt – Practical recommendations to keep your Org healthy
Your Salesforce toolbelt – Practical recommendations to keep your Org healthy
 
Ember.js - Harnessing Convention Over Configuration
Ember.js - Harnessing Convention Over ConfigurationEmber.js - Harnessing Convention Over Configuration
Ember.js - Harnessing Convention Over Configuration
 
JavaScript All The Things
JavaScript All The ThingsJavaScript All The Things
JavaScript All The Things
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Build and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsBuild and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 Mins
 
React and GraphQL at Stripe
React and GraphQL at StripeReact and GraphQL at Stripe
React and GraphQL at Stripe
 
ALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin errores
 
Feature Toggle XP Conference 2016 Kalpana Gulati
Feature Toggle  XP Conference 2016 Kalpana GulatiFeature Toggle  XP Conference 2016 Kalpana Gulati
Feature Toggle XP Conference 2016 Kalpana Gulati
 
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven PignataroJoomla! Day Chicago 2011 Presentation - Steven Pignataro
Joomla! Day Chicago 2011 Presentation - Steven Pignataro
 
Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!
 
Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity Achieving Technical Excellence in Your Software Teams - from Devternity
Achieving Technical Excellence in Your Software Teams - from Devternity
 

Recently uploaded

Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 

Recently uploaded (20)

Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 

Gear up for Continuous Integration with Salesforce DX, Circle CI and Clayton