Learn more how to embed presentation in WordPress
- Slides
- 41 slides
Published Jan 31, 2013 in
Business & Management
Direct Link :
Copy and paste the code below into your blog post or website
Copy URL
Embed into WordPress (learn more)
Comments
comments powered by DisqusPresentation 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
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
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
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
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