CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira



Similar documents
CSE 70: Software Development Pipeline Build Process, XML, Repositories

Continuous Integration

Introduction to Programming Tools. Anjana & Shankar September,2010

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

Continuous Integration (CI) and Testing - Configuring Bamboo, Hudson, and TestMaker

SOFTWARE DEVELOPMENT BASICS SED

Software Configuration Management and Continuous Integration

Continuous Integration Multi-Stage Builds for Quality Assurance

Software Delivery Integration and Source Code Management. for Suppliers

Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII.

Continuous Integration: Aspects in Automation and Configuration Management

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Using SVN to Manage Source RTL

Continuous Integration and Delivery at NSIDC

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Version Control! Scenarios, Working with Git!

MATLAB & Git Versioning: The Very Basics

Using Subversion in Computer Science

Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.

Using SVN to Manage Source RTL

Version Control with Subversion

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Version Control. Luka Milovanov

vs. Web Site: Blog: blog.soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

Software Development In the Cloud Cloud management and ALM

Builder User Guide. Version Visual Rules Suite - Builder. Bosch Software Innovations

Version Control with Subversion and Xcode

Version Control with Git

Continuous Integration: A case study

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

Build Management. Context. Learning Objectives

Oracle Fusion Middleware. 1 Oracle Team Productivity Center Server System Requirements. 2 Installing the Oracle Team Productivity Center Server

Source Control Systems

Software Quality Exercise 2

Manual. CollabNet Subversion Connector to HP Quality Center. Version 1.2

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF

Delivering Quality Software with Continuous Integration

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git

OFBiz Addons goals, howto use, howto manage. Nicolas Malin, Nov. 2012

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Vladimir Bakhov AT-Consulting +7 (905)

Software configuration management

Accelerate Software Delivery

Revision control systems (RCS) and

Software Engineering Process. Kevin Cathey

Builder User Guide. Version 5.4. Visual Rules Suite - Builder. Bosch Software Innovations

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

How To Use An Orgsync With Anorgfusion Middleware

Software Continuous Integration & Delivery

Content. Development Tools 2(63)

Version Control with Git. Kate Hedstrom ARSC, UAF

Version Uncontrolled! : How to Manage Your Version Control

Introduction to Subversion

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE

Source Control Guide: Git

Implementation Guide:

Team Name : PRX Team Members : Liang Yu, Parvathy Unnikrishnan Nair, Reto Kleeb, Xinyi Wang

Software infrastructure for Java development projects

Version control with GIT

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

SMZ. SocialMedia. Z olutions

JUSTIN J. LITTLE Build and Release Engineer

SVN Starter s Guide Compiled by Pearl Guterman June 2005

ALERT installation setup

Beginning with SubclipseSVN

GENiC. Deliverable D5.1 Development & Integration guidelines including integration environment & means. Dissemination Level: Public

CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

@jenkinsconf. Maintaining huge Jenkins clusters - Have we reached the limit of Jenkins?

Version Control with Subversion

Automate Your Deployment with Bamboo, Drush and Features DrupalCamp Scotland, 9 th 10 th May 2014

Pragmatic Version Control

Hudson Continous Integration Server. Stefan Saasen,

Automating the Nengo build process

TeamCity A Professional Solution for Delivering Quality Software, on Time

Extending Remote Desktop for Large Installations. Distributed Package Installs

Introduction to Git. Markus Kötter Notes. Leinelab Workshop July 28, 2015

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Version Control with Git. Dylan Nugent

UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger

Continuous Delivery on AWS. Version 1.0 DO NOT DISTRIBUTE

Version Control with. Ben Morgan

Transcription:

CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira Ingolf Krueger Department of Computer Science & Engineering University of California, San Diego La Jolla, CA 92093-0114, USA California Institute for Telecommunications and Information Technologies La Jolla, CA 92093-0405, USA

Learning Goals for Today Ingolf Krueger, 2010 CSE 2

Learning Goals Understand the benefits of Continuous Integration Know the capabilities of Continuous Integration Servers (example: Bamboo) Understand the benefits of Issue Tracking Know the capabilities and key workflows of Issue Tracking Systems (example: Jira) Ingolf Krueger, 2010 CSE 3

Key elements of the software development pipeline Ingolf Krueger, 2010 CSE 4

Stage 4: Small to Medium Teams w/automated Build Process Today s focus: Version Control (subversion) & Continuous Integration (Bamboo) & Issue Tracking (Jira) Ingolf Krueger, 2010 CSE 5

What else can you do with subversion? Ingolf Krueger, 2010 CSE 6

Other Features of subversion Create Branches Isolate changes to separate lines of development Example: one branch is the currently deployed version for maintenance, another branch is an experimental development version used for testing Creates a versioned copy of the main branch (typically the trunk), otherwise same procedure for checkout, commit, etc. Branches share common path in the revision tree Can merge branches back together Create Tags frozen branches: no further commits will use this for grading of labs/projects Examine Repository and its History: svn log, svn diff svn cat, svn list Ingolf Krueger, 2010 CSE 7

Continuous Integration Ingolf Krueger, 2010 CSE 8

Continuous Integration A software development practice where members of a team integrate their work frequently, usually each person integrates at least daily leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. 1 1 from: http://martinfowler.com/articles/continuousintegration.html Ingolf Krueger, 2010 CSE 9

CI - Value Proposition Reduce risks Reduce repetitive manual tasks Generate deployable software continually Enhance project status visibility Increase confidence in the status of the product adapted from: Paul M. Duvall: Continuous Integration, Addison Wesley, 2007 Ingolf Krueger, 2010 CSE 10

CI - Practices Commit code frequently Write automated tests Run local/private tests Don t commit code that doesn t pass your tests Fix broken builds immediately Avoid checking out broken code adapted from: Paul M. Duvall: Continuous Integration, Addison Wesley, 2007 Ingolf Krueger, 2010 CSE 11

Automate builds CI Practices (continued) Make builds single-command and execute fast Use a version control system with consistent folder structure Fail builds fast Use dedicated integration machine Use a CI server (example: Bamboo, Hudson, CruiseControl, ) adapted from: Paul M. Duvall: Continuous Integration, Addison Wesley, 2007 Ingolf Krueger, 2010 CSE 12

CI Local Build and Integration Cycle Ingolf Krueger, 2010 CSE 13

CI Setup/Deployment Ant, junit Ant, junit Ingolf Krueger, 2010 CSE 14

CI Setup/Deployment Bamboo Ant, junit, Jira Ingolf Krueger, 2010 CSE 15

Example: Bamboo Automation Checkout from repository Clean-up before build is launched Building based on triggers (time, commits, cron, ) Launching of build agents (local, remote, cloud) and builders (Ant, Maven, ) Build artifact delivery Post-processing Notification Ingolf Krueger, 2010 CSE 16

By Hand Run Ant Tasks: Build Notional 1 example for a build.xml file using Ant tasks for sending mail, SVN checkout, running junit tests, tests, and directory operations <project name = w3b" basedir = "." default = "build">! <target name = "build"! <mail from depends = "clean, checkout, init,! compile, tests">! tolist ="me"! ="cse70_buildmaster@ucsd.edu"! subject="results of nightly build"! files ="build.log"/>! </target>!...! 1 some parts are simplified/left out for readability, but you should get the basic idea Ingolf Krueger, 2010 CSE 17

By Hand Run Ant Tasks: Checkout...! <target name = "checkout" depends "clean">! <svn username ="guest" password="">! <checkout url =! <svn>! </target>!...! "https://cse70-server.ucsd.edu/svn/max/trunk/"! destpath = "trunk" />! Ingolf Krueger, 2010 CSE 18

...!...! By Hand Run Ant Tasks: Tests <target name = "tests" depends = "compile">! <junit printsummary ="yes"! fork ="yes! haltonfailure="yes">! <formatter type="xml"/>! <batchtest fork="yes" todir="trunk/reports/">! <fileset dir="/trunk/src">! <include name="**/*test*.java"/>! </fileset>! </batchtest>! </junit>! </target>! Ingolf Krueger, 2010 CSE 19

...! By Hand Run Ant Tasks: Compile <target name = "compile" depends = "init, checkout">! <javac srcdir = "trunk/src"! destdir = "trunk/bin"/>! </target>! <target name = "clean">! <delete dir= "trunk"/>! </target>! <target name = "init">! <mkdir dir = "trunk/bin"/>! </target>! </project>! Ingolf Krueger, 2010 CSE 20

Issue Tracking Ingolf Krueger, 2010 CSE 21

Use Case for Issue Tracking: Bug Tracking (1/2) User/developer finds a bug Creates an issue describing the symptoms Submits the issue into the system The issue gets a unique ticket and is assigned to someone to work on it The status of the issue (open, solved, retired, ) is visible Ingolf Krueger, 2010 CSE 22

Use Case for Issue Tracking: Bug Tracking (2/2) While the issue is open, additional information can be associated with it: relevant code tests builds, All communication and information is associated with the ticket Productivity views: which projects solve issues quickly? who solves issues? what projects have the fewest issues? Why? Ingolf Krueger, 2010 CSE 23

Issue Tracking: Other Applications Customer Support/Helpdesk Requirements Management Feature Lists Feature Requests Voting Project Management Task assignment Task tracking Workflow Management Ingolf Krueger, 2010 CSE 24

Example: Jira Project * * Component Version read: a Project has many Components * Issue Ingolf Krueger, 2010 CSE 25

Example: Properties of Issues in Jira Comments Priority Status Type Key Estimates Issue Reporter Assignee Components Time Spent Versions Description Ingolf Krueger, 2010 CSE 26

Jira: Home Screen Ingolf Krueger, 2010 CSE 27

Jira: Create Issue (1/2) Ingolf Krueger, 2010 CSE 28

Jira: Create Issue (2/2) Ingolf Krueger, 2010 CSE 29

Jira: New Issue Example Ingolf Krueger, 2010 CSE 30

Jira: View Issue Ingolf Krueger, 2010 CSE 31

Jira: Workflow Actions Ingolf Krueger, 2010 CSE 32

Jira: Basic Issue States and Actions Ingolf Krueger, 2010 CSE 33

Jira: Advanced Issue States and Actions adapted from http://www.atlassian.com/software/jira/docs/latest/default_workflow.html, accessed April 12, 2009 Ingolf Krueger, 2010 CSE 34

What have you learned today? Ingolf Krueger, 2010 CSE 35

Learning Goals Understand the benefits of Continuous Integration Know the capabilities of Continuous Integration Servers (example: Bamboo) Understand the benefits of Issue Tracking Know the capabilities and key workflows of Issue Tracking Systems (example: Jira) Ingolf Krueger, 2010 CSE 36

Stage 4: Small to Medium Teams w/automated Build Process We have now seen all components of the Software Development Pipeline Ingolf Krueger, 2010 CSE 37