by anon

Slides
41 slides

Continuous Integration PowerPoint Presentation

Published Jan 31, 2013 in Business & Management
Direct Link :

Continuous Integration PowerPoint Presentation... Read more

Continuous Integration PowerPoint Presentation

Read less


Comments

comments powered by Disqus

Presentation Slides & Transcript

Presentation Slides & Transcript

1
Joe Berkovitz
VP Engineering
Allurent, Inc.
Continuous Integration with Flex, FlexUnit, and Ant

2
Is your build process like a Rube Goldberg contraption?
Manual
Fragile
Missing

Current Build Process
Image Source: http://mousetrapcontraptions.com/rube-cartoons-2.html

3
Goal of this talk is to introduce tools and techniques to create a continuous integration based build process.
Centralized
Automated
Self-Testing
Ideal Build Process
Image Source: http://science.ksc.nasa.gov/shuttle/missions/sts-105/images/contact105_medium.html

4
Continuous Integration is a software development practice where members of a team integrate their work frequently.
Each integration is verified by an automated build and test that detects integration errors as quickly as possible.
Continuous Integration
Source: http://www.martinfowler.com/articles/continuousIntegration.html

5
Continuous Integration Cycle
Source: http://www.methodsandtools.com/archive/archive.php?id=42

6
Build Failure Notification

7
Build Log

8
Project Dashboard

9
Project Distributions

10
Continuous Integration Cycle

11
Build Process
Source Code
Build File
Generated Assets
Build Tool

12
Project View
Project
Build File
Generated Assets
/bin
/src
Source Code
Build Tool
/

13
Build Automation Tool
Widely Used
Extensive Documentation
Cross Platform
Robust
XML Based

Ant

14
Project
Tree governed by a set of automated jobs or "targets"
Ideally corresponds 1-to-1 with real projects
XML defines targets
Key Ant Concepts
Property
Holds a constant textual value or file location
Accessed with ${xyz} syntax
Environment or custom defined
Target
Logical chunk of work
Can depend on other targets
Works like a script
Task
Individual command
Accepts arguments to control behavior
Used in targets

15
Ant Hello World Demonstration

16





description="Build the Hello World project">




Hello World Build Script

Hello World Build Script Output
Executed build file

Name of target being run

Name of target being run
Task name and output


Result of the build
Diagnostic information
Buildfile: build.xml

init:

build:
[echo] Hello World! Today is September 17 2007

BUILD SUCCESSFUL
Total time: 0 seconds

17

18
Ant mxmlc Demonstration

19


classpath="${basedir}/flexTasks/lib/flexTasks.jar"/>


output="bin/${ant.project.name}.swf">
filename="${FLEX_HOME}/frameworks/flex-config.xml"/>





Compiling an Application

20
Keep source and output separated
Don’t do work you’ve already done
Provide reasonable defaults
Centralize behavior
Predictability

Build Practices

21
Build Templates
Source Code
Build File
Generated Assets
Build Tool
Build Templates
User Specific Overrides

22
Build Templates
Encapsulates Best Practices
Handles Flex Applications, Libraries, and Documentation
Cross Project Dependencies
Multiple Project Builds

Antennae

23
Antennae Demonstration

24





description="Build the application" />


Antennae Build Script

25
Flex Builder can invoke Ant to compile a Flex project
Flex Builder can use Ant targets…
to do all build work
just to do the non-compilation steps
Using Ant and Flex Builder together

26
Continuous Integration Cycle

27
Build Verification
Supports Flex and ActionScript
Asynchronous Testing Facilities
Graphical Test Results

FlexUnit

28
FlexUnit Test Results

29
FlexUnit Demonstration

30
FlexUnit Automation
Test Suite Generation
Test Filtering
Actionscript to Java Result Reporting
Antennae

31
Antennae Demonstration

32








description="Build the test application"/>
description="Run the test application"/>

Automated Test Script

33
Continuous Integration Cycle

34
Ant Demonstration

35
Complex Project Demonstration

36
Complex Project View
SubProject1
Assets
/bin
/src
Source Code
assets
SubProject2
Assets
/bin
/src
Source Code
imports
Project
Build File
/proj2
/proj1
/

37
Many small projects keep dependencies under control
But… Flex Builder is very slow when building many Library Projects
Solution: Create single Flex Builder "super-project" that has multiple source paths in multiple projects.
Building Complex Projects with Flex Builder

38
Continuous Integration Cycle

39
Key Concepts
Source code repository
Clean build machine
Runs after every commit

Popular platforms
CruiseControl
Apache Continuum
Many others

Continuous Integration

40
Ant
http://ant.apache.org/
FlexUnit
http://code.google.com/p/as3flexunitlib/
Antennae
http://code.google.com/p/antennae/
Continuous Integration Matrix
http://docs.codehaus.org/x/gCk
Flex Ant Tasks
http://labs.adobe.com/wiki/index.php/Flex_Ant_Tasks


Resources

41
Q & A