Upload
brendan-blake
View
217
Download
0
Embed Size (px)
DESCRIPTION
Build and Deployment Process LexEVS 6.4 Build and Distribution Changes Remove the existing all-in-one large jar build (with dependencies) Build only a lexbig.jar and a folder with all of its dependencies. Windows batch files and Linux shell scripts need to be updated to point to the updated jar/paths.
Citation preview
Build and Deployment Process
• Understand NCI’s DevOps and continuous integration requirements
• Understand NCI’s build and distribution requirements
Build and Deployment Process
• LexEVS 6.4 Build and Distribution Changes
• Overview• The latest version of Lucene is causing build
failures with our old style all-in-one jarred dependencies and code build.
• The process for creating the LexEVS jar and its dependencies needs to be updated.
Build and Deployment Process
• LexEVS 6.4 Build and Distribution Changes
• Remove the existing all-in-one large jar build (with dependencies)
• Build only a lexbig.jar and a folder with all of its dependencies.
• Windows batch files and Linux shell scripts need to be updated to point to the updated jar/paths.
Build and Deployment Process
• LexEVS 6.4 Build and Distribution Changes
• Additional Information• LEXEVS-1322• https://wiki.nci.nih.gov/display/LexEVS/Consi
deration+of+Build+Impacts
Build and Deployment Process
• Considerations for Triple Store/Graph DB• Propagate data loads up the tiers• Validation of loading an ontology
• Considerations for Cloud Infrastructure• Security concerns• Up time• Scalability
Build and Deployment Process
• Continuous integration principles• Maintain a single source repository• Automate the build• Make your build self-testing• Every commit should build on an integration
machine• Keep the build fast• Make it easy for anyone to get the latest
executable• Everyone can see what’s happening• Automate deployment
Build and Deployment Process
• Continuous integration benefits• A practice that requires developers to
integrate code into a shared repository several times a day.
• Each check-in is verified by an automated build, allowing teams to detect problems early.
• Integration bugs are detected early and are easy to track down due to small change sets.
• Constant availability of a "current" build for testing, demo, or release purposes
Build and Deployment Process
• Continuous integration benefits• Immediate feedback on system-wide impact of
local changes• Metrics generated from automated testing and
CI (such as metrics for code coverage, code complexity, and features complete) focus developers on developing functional, quality code
Build and Deployment Process
• LexEVS Continuous Integration (CI) Server• Jenkins (http://jenkins-ci.org/)
• Jenkins install requirements• Unix/Linux and Windows
• Native integration with several OSes• Runs in servlet container (tomcat 5 or
greater)• Requires Java7 or above. Java8 is
recommended.• >= 1 GB of memory• https://wiki.jenkins-ci.org/display/JENKINS/
Installing+Jenkins
Build and Deployment Process
• LexEVS Continuous Integration (CI) Server• Mayo uses Jenkins for a CI server
• Jenkins (http://jenkins-ci.org/)• Running Version 1.638 • Server is running behind Mayo’s firewall• Branches being built when a check in is made
• LexEVS 6.1• LexEVS 6.2• LexEVS 6.3• LexEVS DEV (Lucene branch)• LexEVS Master
Build and Deployment Process
• Jenkins setup for LexEVS 6.3 branch• This is done on the Jenkins
configuration page.• Specify the JDK:
Build and Deployment Process
• Specify Source Code Management (Git)
Build and Deployment Process
• Specify Build Triggers
Build and Deployment Process
• Specify Build and Test script
Build and Deployment Process
• Specify Post-build Actions
Build and Deployment Process
• Demo of Docker• Next steps/roadmap
Build and Deployment Process
• Discussion Recap• Requirements • Decision Points • Priority