ContinuousIntegration final

Information about ContinuousIntegration final

Published on November 28, 2007

Author: Mee12

Source: authorstream.com

Content

Continuous Integration with Flex, FlexUnit, and Ant:  1 Joe Berkovitz VP Engineering Allurent, Inc. Continuous Integration with Flex, FlexUnit, and Ant Slide2:  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 Slide3:  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 Slide4:  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 Slide5:  5 Continuous Integration Cycle Source: http://www.methodsandtools.com/archive/archive.php?id=42 Slide6:  6 Build Failure Notification Slide7:  7 Build Log Slide8:  8 Project Dashboard Slide9:  9 Project Distributions Slide10:  10 Continuous Integration Cycle Slide11:  11 Build Process Source Code Build File Generated Assets Build Tool Slide12:  12 Project View Project Build File Generated Assets /bin /src Source Code Build Tool / Slide13:  13 Build Automation Tool Widely Used Extensive Documentation Cross Platform Robust XML Based Ant Slide14:  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 Slide15:  15 Ant Hello World Demonstration Slide16:  16 <project name="HelloWorld" default="build"> <property name="message" value="Hello World!"/> <target name="init" description="Initialize the build"> <tstamp/> </target> <target name="build" depends="init" description="Build the Hello World project"> <echo message="${message} Today is ${TODAY}"/> </target> </project> Hello World Build Script Hello World Build Script Output:  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 17 Slide18:  18 Ant mxmlc Demonstration Slide19:  19 <!-- Using the Flex Ant Tasks provided by Adobe Labs --> <project name="SampleApplication" default="build"> <taskdef resource="flexTasks.tasks" classpath="${basedir}/flexTasks/lib/flexTasks.jar"/> <property name="FLEX_HOME" value="C:/Talk/Flex2.0.1HF2"/> <target name="build"> <mxmlc file="src/${ant.project.name}.mxml" output="bin/${ant.project.name}.swf"> <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/> <source-path path-element="${FLEX_HOME}/frameworks"/> </mxmlc> </target> </project> Compiling an Application Slide20:  20 Keep source and output separated Don’t do work you’ve already done Provide reasonable defaults Centralize behavior Predictability Build Practices Slide21:  21 Build Templates Source Code Build File Generated Assets Build Tool Build Templates User Specific Overrides Slide22:  22 Build Templates Encapsulates Best Practices Handles Flex Applications, Libraries, and Documentation Cross Project Dependencies Multiple Project Builds Antennae Slide23:  23 Antennae Demonstration Slide24:  24 <project name="SampleApplication" default="build"> <property name="root.dir" location="../"/> <property file="${root.dir}/build-user.properties"/> <import file="${root.dir}/tools/build-imports.xml"/> <path id="flex2.lib.path"/> <target name="build" depends="init,flex2-application" description="Build the application" /> </project> Antennae Build Script Slide25:  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 Slide26:  26 Continuous Integration Cycle Slide27:  27 Build Verification Supports Flex and ActionScript Asynchronous Testing Facilities Graphical Test Results FlexUnit Slide28:  28 FlexUnit Test Results Slide29:  29 FlexUnit Demonstration Slide30:  30 FlexUnit Automation Test Suite Generation Test Filtering Actionscript to Java Result Reporting Antennae Slide31:  31 Antennae Demonstration Slide32:  32 <project name="SampleTestApplication" default="test"> <!-- Shared imports --> <import file="${root.dir}/lib/build-assets.xml" /> <path id="flex2.lib.path"> <pathelement location="${flexunit2.swc}"/> <pathelement location="${arc-flexunit2.swc}"/> <!-- Include asset under test here --> </path> <target name="build" depends="init,flex2-test-application" description="Build the test application"/> <target name="test" depends="build,test-flexunit2" description="Run the test application"/> </project> Automated Test Script Slide33:  33 Continuous Integration Cycle Slide34:  34 Ant Demonstration Slide35:  35 Complex Project Demonstration Slide36:  36 Complex Project View SubProject1 Assets /bin /src Source Code assets SubProject2 Assets /bin /src Source Code imports Project Build File /proj2 /proj1 / Slide37:  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 Slide38:  38 Continuous Integration Cycle Slide39:  39 Key Concepts Source code repository Clean build machine Runs after every commit Popular platforms CruiseControl Apache Continuum Many others Continuous Integration Slide40:  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 Slide41:  41 Q & A

Related presentations


Other presentations created by Mee12

08 Dog and Cat Nutrition
16. 11. 2007
0 views

08 Dog and Cat Nutrition

miguel angel bustamante
01. 10. 2007
0 views

miguel angel bustamante

Athens 2004
02. 10. 2007
0 views

Athens 2004

hauer1
27. 09. 2007
0 views

hauer1

aws
06. 11. 2007
0 views

aws

Chapters 9 10
26. 11. 2007
0 views

Chapters 9 10

N A V I G T O R S VBB 2007
30. 11. 2007
0 views

N A V I G T O R S VBB 2007

Fruit Insects
01. 12. 2007
0 views

Fruit Insects

raghavachari
04. 12. 2007
0 views

raghavachari

Test Anxiety 1
06. 12. 2007
0 views

Test Anxiety 1

ProvidentialHistory
31. 10. 2007
0 views

ProvidentialHistory

chap08 og
01. 11. 2007
0 views

chap08 og

handout 184637
05. 11. 2007
0 views

handout 184637

2004 harm present
05. 11. 2007
0 views

2004 harm present

E DESC AK PACOM POL CONF ver31
13. 11. 2007
0 views

E DESC AK PACOM POL CONF ver31

bedeutung innovation
15. 11. 2007
0 views

bedeutung innovation

Parity01 grames slides
23. 11. 2007
0 views

Parity01 grames slides

GA Conf07Lomas
13. 12. 2007
0 views

GA Conf07Lomas

CooperativeLearning
17. 12. 2007
0 views

CooperativeLearning

Friendship 1
23. 12. 2007
0 views

Friendship 1

plant lifecycles
28. 12. 2007
0 views

plant lifecycles

Millay
28. 12. 2007
0 views

Millay

alterman pki 05 13 01
01. 01. 2008
0 views

alterman pki 05 13 01

RMA 2005
02. 01. 2008
0 views

RMA 2005

OH
04. 01. 2008
0 views

OH

pp Bioeconomy Polansky Dec2007
04. 01. 2008
0 views

pp Bioeconomy Polansky Dec2007

nazca lines
07. 01. 2008
0 views

nazca lines

4330IBS
30. 10. 2007
0 views

4330IBS

Wk4 Mon
04. 01. 2008
0 views

Wk4 Mon

lh1
21. 11. 2007
0 views

lh1

econ and mgnt of privatization
20. 11. 2007
0 views

econ and mgnt of privatization

jre imps2005
06. 11. 2007
0 views

jre imps2005

EE541 451 class29
28. 11. 2007
0 views

EE541 451 class29

Aquatic Equipment
08. 11. 2007
0 views

Aquatic Equipment

WomensEmploymentJan2 001
24. 02. 2008
0 views

WomensEmploymentJan2 001

1025 QM05 Nardi
29. 10. 2007
0 views

1025 QM05 Nardi

wendybear
24. 12. 2007
0 views

wendybear

Martinac
14. 03. 2008
0 views

Martinac

DynaMed
25. 10. 2007
0 views

DynaMed

IntStu
27. 03. 2008
0 views

IntStu

Country Risk Sep07
13. 04. 2008
0 views

Country Risk Sep07

Eco 336 Constitutional Limits on
17. 12. 2007
0 views

Eco 336 Constitutional Limits on

2003 lecture crypto1
31. 12. 2007
0 views

2003 lecture crypto1

robo lectures
14. 11. 2007
0 views

robo lectures

Ders1
29. 12. 2007
0 views

Ders1

REDLOBSTER
07. 12. 2007
0 views

REDLOBSTER

WarmUps WHII
25. 12. 2007
0 views

WarmUps WHII

pres riccardo
30. 10. 2007
0 views

pres riccardo

Chapt3overhead
12. 11. 2007
0 views

Chapt3overhead

SHFA280301
28. 11. 2007
0 views

SHFA280301

IfA jan03v1
15. 11. 2007
0 views

IfA jan03v1