SlideShare a Scribd company logo
PUSHING THE LIMITS OF LABVIEW




Fire and Forget:
Bulletproof Builds Using Continuous
Integration With LabVIEW                   http://xkcd.com/974/




Omar Mussa
JKI Senior Engineer & Professional Services Manager
Continuous Integration with LabVIEW

What is Continuous Integration?
What is Jenkins?
Build Automation Process
Considerations for LabVIEW Build Automation




                                          PUSHING THE
2
                                          LIMITS OF LABVIEW
Continuous Integration with LabVIEW

What is Continuous Integration?
What is Jenkins?
Build Automation Process
Considerations for LabVIEW Build Automation




                                          PUSHING THE
3
                                          LIMITS OF LABVIEW
Continuous Integration In Action

Let’s start with a demo!


                                       FIRE!




      Image via: pasukaru76 with Creative Commons   Image via: Esparta Palma with Creative Commons




                                                                                                     PUSHING THE
4
                                                                                                     LIMITS OF LABVIEW
What is Continuous Integration?

End to end automation of your build and release
process...




                                             PUSHING THE
5
                                             LIMITS OF LABVIEW
Continuous Integration with LabVIEW

What is Continuous Integration?
What is Jenkins?
Build Automation Process
Considerations for LabVIEW Build Automation




                                          PUSHING THE
6
                                          LIMITS OF LABVIEW
About Jenkins

Open Source (Est. ~2007)
Many users
Many plugins
Some learning curve but overall easy to use
Has GUI




                                              PUSHING THE
7
                                              LIMITS OF LABVIEW
What Problems Does Jenkins Solve?

       Build Triggering (Web Hooks or SCC Polling)
       Build Execution Order (Build Pipelines, etc)
       Build History
       Unit Test History
       Build Failure Notification




                                                       PUSHING THE
8
                                                       LIMITS OF LABVIEW
Poking around in Jenkins




           Let’s take a look around ...




                                          PUSHING THE
9
                                          LIMITS OF LABVIEW
Continuous Integration with LabVIEW

What is Continuous Integration?
What is Jenkins?
Build Automation Process
Considerations for LabVIEW Build Automation
                           Image via: http://xkcd.com/303/




                                                             PUSHING THE
10
                                                             LIMITS OF LABVIEW
Build Planning




Q. When do we start making builds of our project?
        A. As early and often as possible.




                                             PUSHING THE
11
                                             LIMITS OF LABVIEW
LabVIEW Build Types

Lots of deliverables can be built using LabVIEW




               EXE         Installer            DLL




     Package         PPL               Source          Zip
                                                      PUSHING THE
12
                                                      LIMITS OF LABVIEW
LabVIEW Build Process

Typical LabVIEW Build and Release Process




                                            PUSHING THE
13
                                            LIMITS OF LABVIEW
LabVIEW Build Process using CI

Typical CI Server Automated Build Process




                                            PUSHING THE
14
                                            LIMITS OF LABVIEW
Direct Business Value Benefits




                                PUSHING THE
15
                                LIMITS OF LABVIEW
Voila!




         Our demo build server revisited ...




                                               PUSHING THE
16
                                               LIMITS OF LABVIEW
Basic Build Automation Development




                               Image via: http://xkcd.com/303/




                                                                 PUSHING THE
17
                                                                 LIMITS OF LABVIEW
Continuous Integration with LabVIEW

What is Continuous Integration?
What is Jenkins?
Build Automation Process
Considerations for LabVIEW Build Automation




                                       PUSHING THE
18
                                       LIMITS OF LABVIEW
LabVIEW from the Command Line

Easiest way to call LabVIEW Build VIs is via
command line!
        Use Batch File from CI Software
        Requires some design considerations
            Forcing batch file to wait for build to complete
            Error handling




                                                               PUSHING THE
19
                                                               LIMITS OF LABVIEW
LabVIEW from the Command Line

Calling LabVIEW.exe from the command line...
        LabVIEW can only receive one set of command line
         parameters per call
        LabVIEW must be closed before new build is started
        [ProgramFiles]LabVIEW.exe “[path to VI]” -- [user
         arguments]
            Build VI must be set to “Run When Opened”




                                                         PUSHING THE
20
                                                         LIMITS OF LABVIEW
LabVIEW from the Command Line

Use Application Property node to read command line
arguments
        LabVIEW is ALWAYS the 0th element
Best Practice
        Pass the build number to your build VI




                                                  PUSHING THE
21
                                                  LIMITS OF LABVIEW
When Builds Break ...




     Demo of package build server error detection




                                            PUSHING THE
22
                                            LIMITS OF LABVIEW
Build Design Considerations

Separate project build steps for pipelining
Separate project build steps for distributing builds
Avoid SCC commits within build workspaces during
build process
        Only want to trigger builds from developer commits, not
         from build process itself
        Generally means that build number is passed to build
         process (via Jenkins)
Avoid development on build server itself
                                                         PUSHING THE
23
                                                         LIMITS OF LABVIEW
Build Time Considerations

CI Server Impact on Short Build Times
        Fast feedback to developer isolates debugging
        Platform for unit test execution
CI Server Impact on Long Build Times
        Builds are still run ~daily
        Not ‘stuck’ at end of project with broken build
        Frees up a lot of developer time that would otherwise be
         wasted waiting for builds to execute.


                                                           PUSHING THE
24
                                                           LIMITS OF LABVIEW
JKI’s Continuous Build ToolChain




                      JKI VI Tester




                                      PUSHING THE
25
                                      LIMITS OF LABVIEW
Questions




                    Questions?
            Thank you for participating!




                                           PUSHING THE
26
                                           LIMITS OF LABVIEW
Need Help?



       Let JKI build your CI system.
                Automated Build VIs
           Source Code Control Integration
                  Unit Test Design
             Cloud-hosted Build Servers
     Jenkins Setup, Integration, and Maintenance

       Reliable, Repeatable, Secure.
                                           PUSHING THE
27
                                           LIMITS OF LABVIEW
Contact Us




             jki.net /contact




                                PUSHING THE
28
                                LIMITS OF LABVIEW

More Related Content

What's hot

Foundational Design Patterns for Multi-Purpose Applications
Foundational Design Patterns for Multi-Purpose ApplicationsFoundational Design Patterns for Multi-Purpose Applications
Foundational Design Patterns for Multi-Purpose ApplicationsChing-Hwa Yu
 
TMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael PalotasTMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael Palotas
KJR
 
Devops | CICD Pipeline
Devops | CICD PipelineDevops | CICD Pipeline
Devops | CICD Pipeline
Binish Siddiqui
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8Rajwinder Singh
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
Mike McGarr
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
Mike McGarr
 
Continuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise StackContinuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise Stack
DevOps.com
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Abraham Marin-Perez
 
Software Factory - Overview
Software Factory - OverviewSoftware Factory - Overview
Software Factory - Overviewslides_teltools
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationRodrigo Russo
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
Edureka!
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous Delivery
John Ferguson Smart Limited
 
Automating development-operations-v1
Automating development-operations-v1Automating development-operations-v1
Automating development-operations-v1Sumanth Vepa
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
GlobalLogic Ukraine
 
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demoAgile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Grid Dynamics
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
Martin Málek
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
Stefan Verhoeff
 
Simple ci cd with strider cd
Simple ci cd with strider cdSimple ci cd with strider cd
Simple ci cd with strider cd
Amandeep Singh
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
Prolifics
 

What's hot (19)

Foundational Design Patterns for Multi-Purpose Applications
Foundational Design Patterns for Multi-Purpose ApplicationsFoundational Design Patterns for Multi-Purpose Applications
Foundational Design Patterns for Multi-Purpose Applications
 
TMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael PalotasTMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael Palotas
 
Devops | CICD Pipeline
Devops | CICD PipelineDevops | CICD Pipeline
Devops | CICD Pipeline
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
Continuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise StackContinuous Integration to Shift Left Testing Across the Enterprise Stack
Continuous Integration to Shift Left Testing Across the Enterprise Stack
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
 
Software Factory - Overview
Software Factory - OverviewSoftware Factory - Overview
Software Factory - Overview
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous Delivery
 
Automating development-operations-v1
Automating development-operations-v1Automating development-operations-v1
Automating development-operations-v1
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
 
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demoAgile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
 
Simple ci cd with strider cd
Simple ci cd with strider cdSimple ci cd with strider cd
Simple ci cd with strider cd
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
 

Similar to NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integration With LabVIEW

Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Michael Palotas
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkins
Vinay H G
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
The Next Generation of Continuous Delivery
The Next Generation of Continuous DeliveryThe Next Generation of Continuous Delivery
The Next Generation of Continuous Delivery
IBM UrbanCode Products
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
Excella
 
Coding Naked
Coding NakedCoding Naked
Coding Naked
Caleb Jenkins
 
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx
Grace Jansen
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
DC Agile Engineering Conference
 
Net Beans
Net BeansNet Beans
Net Beans
marx wang
 
Net Beans
Net BeansNet Beans
Net Beans
marx wang
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptx
Grace Jansen
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptx
Grace Jansen
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
Mike McGarr
 
Building a Large Java Codebase with Bazel - Natan Silnitsky
Building a Large Java Codebase with Bazel - Natan Silnitsky Building a Large Java Codebase with Bazel - Natan Silnitsky
Building a Large Java Codebase with Bazel - Natan Silnitsky
Wix Engineering
 
Continuous Integration and Delivery using TeamCity and Jenkins
Continuous Integration and Delivery using TeamCity and JenkinsContinuous Integration and Delivery using TeamCity and Jenkins
Continuous Integration and Delivery using TeamCity and Jenkins
Mahmoud Ali
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
Grace Jansen
 
The Brave New World of Continuous Release
The Brave New World of Continuous ReleaseThe Brave New World of Continuous Release
The Brave New World of Continuous Release
Baruch Sadogursky
 
Automated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsAutomated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yards
John Ferguson Smart Limited
 

Similar to NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integration With LabVIEW (20)

Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkins
 
Hudson: from build jobs to build pipelines
Hudson: from build jobs to build pipelinesHudson: from build jobs to build pipelines
Hudson: from build jobs to build pipelines
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
 
The Next Generation of Continuous Delivery
The Next Generation of Continuous DeliveryThe Next Generation of Continuous Delivery
The Next Generation of Continuous Delivery
 
Visual_Check
Visual_CheckVisual_Check
Visual_Check
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Coding Naked
Coding NakedCoding Naked
Coding Naked
 
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Net Beans
Net BeansNet Beans
Net Beans
 
Net Beans
Net BeansNet Beans
Net Beans
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptx
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptx
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
 
Building a Large Java Codebase with Bazel - Natan Silnitsky
Building a Large Java Codebase with Bazel - Natan Silnitsky Building a Large Java Codebase with Bazel - Natan Silnitsky
Building a Large Java Codebase with Bazel - Natan Silnitsky
 
Continuous Integration and Delivery using TeamCity and Jenkins
Continuous Integration and Delivery using TeamCity and JenkinsContinuous Integration and Delivery using TeamCity and Jenkins
Continuous Integration and Delivery using TeamCity and Jenkins
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
 
The Brave New World of Continuous Release
The Brave New World of Continuous ReleaseThe Brave New World of Continuous Release
The Brave New World of Continuous Release
 
Automated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yardsAutomated Deployment with Maven - going the whole nine yards
Automated Deployment with Maven - going the whole nine yards
 

Recently uploaded

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
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
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
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
 
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
 
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
 
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
 
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
 
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
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
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
 
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
 
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
 
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
 

Recently uploaded (20)

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
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
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
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
 
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*
 
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
 
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
 
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...
 
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
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
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
 
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 -...
 
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
 
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
 

NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integration With LabVIEW

  • 1. PUSHING THE LIMITS OF LABVIEW Fire and Forget: Bulletproof Builds Using Continuous Integration With LabVIEW http://xkcd.com/974/ Omar Mussa JKI Senior Engineer & Professional Services Manager
  • 2. Continuous Integration with LabVIEW What is Continuous Integration? What is Jenkins? Build Automation Process Considerations for LabVIEW Build Automation PUSHING THE 2 LIMITS OF LABVIEW
  • 3. Continuous Integration with LabVIEW What is Continuous Integration? What is Jenkins? Build Automation Process Considerations for LabVIEW Build Automation PUSHING THE 3 LIMITS OF LABVIEW
  • 4. Continuous Integration In Action Let’s start with a demo! FIRE! Image via: pasukaru76 with Creative Commons Image via: Esparta Palma with Creative Commons PUSHING THE 4 LIMITS OF LABVIEW
  • 5. What is Continuous Integration? End to end automation of your build and release process... PUSHING THE 5 LIMITS OF LABVIEW
  • 6. Continuous Integration with LabVIEW What is Continuous Integration? What is Jenkins? Build Automation Process Considerations for LabVIEW Build Automation PUSHING THE 6 LIMITS OF LABVIEW
  • 7. About Jenkins Open Source (Est. ~2007) Many users Many plugins Some learning curve but overall easy to use Has GUI PUSHING THE 7 LIMITS OF LABVIEW
  • 8. What Problems Does Jenkins Solve?  Build Triggering (Web Hooks or SCC Polling)  Build Execution Order (Build Pipelines, etc)  Build History  Unit Test History  Build Failure Notification PUSHING THE 8 LIMITS OF LABVIEW
  • 9. Poking around in Jenkins Let’s take a look around ... PUSHING THE 9 LIMITS OF LABVIEW
  • 10. Continuous Integration with LabVIEW What is Continuous Integration? What is Jenkins? Build Automation Process Considerations for LabVIEW Build Automation Image via: http://xkcd.com/303/ PUSHING THE 10 LIMITS OF LABVIEW
  • 11. Build Planning Q. When do we start making builds of our project? A. As early and often as possible. PUSHING THE 11 LIMITS OF LABVIEW
  • 12. LabVIEW Build Types Lots of deliverables can be built using LabVIEW EXE Installer DLL Package PPL Source Zip PUSHING THE 12 LIMITS OF LABVIEW
  • 13. LabVIEW Build Process Typical LabVIEW Build and Release Process PUSHING THE 13 LIMITS OF LABVIEW
  • 14. LabVIEW Build Process using CI Typical CI Server Automated Build Process PUSHING THE 14 LIMITS OF LABVIEW
  • 15. Direct Business Value Benefits PUSHING THE 15 LIMITS OF LABVIEW
  • 16. Voila! Our demo build server revisited ... PUSHING THE 16 LIMITS OF LABVIEW
  • 17. Basic Build Automation Development Image via: http://xkcd.com/303/ PUSHING THE 17 LIMITS OF LABVIEW
  • 18. Continuous Integration with LabVIEW What is Continuous Integration? What is Jenkins? Build Automation Process Considerations for LabVIEW Build Automation PUSHING THE 18 LIMITS OF LABVIEW
  • 19. LabVIEW from the Command Line Easiest way to call LabVIEW Build VIs is via command line!  Use Batch File from CI Software  Requires some design considerations  Forcing batch file to wait for build to complete  Error handling PUSHING THE 19 LIMITS OF LABVIEW
  • 20. LabVIEW from the Command Line Calling LabVIEW.exe from the command line...  LabVIEW can only receive one set of command line parameters per call  LabVIEW must be closed before new build is started  [ProgramFiles]LabVIEW.exe “[path to VI]” -- [user arguments]  Build VI must be set to “Run When Opened” PUSHING THE 20 LIMITS OF LABVIEW
  • 21. LabVIEW from the Command Line Use Application Property node to read command line arguments  LabVIEW is ALWAYS the 0th element Best Practice  Pass the build number to your build VI PUSHING THE 21 LIMITS OF LABVIEW
  • 22. When Builds Break ... Demo of package build server error detection PUSHING THE 22 LIMITS OF LABVIEW
  • 23. Build Design Considerations Separate project build steps for pipelining Separate project build steps for distributing builds Avoid SCC commits within build workspaces during build process  Only want to trigger builds from developer commits, not from build process itself  Generally means that build number is passed to build process (via Jenkins) Avoid development on build server itself PUSHING THE 23 LIMITS OF LABVIEW
  • 24. Build Time Considerations CI Server Impact on Short Build Times  Fast feedback to developer isolates debugging  Platform for unit test execution CI Server Impact on Long Build Times  Builds are still run ~daily  Not ‘stuck’ at end of project with broken build  Frees up a lot of developer time that would otherwise be wasted waiting for builds to execute. PUSHING THE 24 LIMITS OF LABVIEW
  • 25. JKI’s Continuous Build ToolChain JKI VI Tester PUSHING THE 25 LIMITS OF LABVIEW
  • 26. Questions Questions? Thank you for participating! PUSHING THE 26 LIMITS OF LABVIEW
  • 27. Need Help? Let JKI build your CI system. Automated Build VIs Source Code Control Integration Unit Test Design Cloud-hosted Build Servers Jenkins Setup, Integration, and Maintenance Reliable, Repeatable, Secure. PUSHING THE 27 LIMITS OF LABVIEW
  • 28. Contact Us jki.net /contact PUSHING THE 28 LIMITS OF LABVIEW