Top Banner
Apache Continuum Build, Test, and Release Wendy Smoak ApacheCon Europe March 27, 2009
43

Apache Continuum Build, Test, and Release

Dec 05, 2014

Download

Technology

elliando dias

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Apache Continuum Build, Test, and Release

Apache ContinuumBuild, Test, and Release

Wendy Smoak

ApacheCon EuropeMarch 27, 2009

Page 2: Apache Continuum Build, Test, and Release

• Member, The Apache Software Foundation

• Committer, Apache Continuum, Archiva, Struts, Tiles, Maven, ...

• Solutions Architect, G2iX

[email protected]

http://wsmoak.net

Wendy Smoak

2

Page 3: Apache Continuum Build, Test, and Release

How many...

3

Page 4: Apache Continuum Build, Test, and Release

Continuous Integration

4

Page 5: Apache Continuum Build, Test, and Release

Continuous Integration

... is a software development practice in which 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 tests).

http://www.martinfowler.com/articles/continuousIntegration.html5

Page 6: Apache Continuum Build, Test, and Release

Continuous Integration

6

build

check in

test

notify

Page 7: Apache Continuum Build, Test, and Release

Why CI?

7

• Save time

• Increase visibility

• Improve coverage

Page 8: Apache Continuum Build, Test, and Release

Apache Continuum

8

Page 9: Apache Continuum Build, Test, and Release

• Apache top-level project

• More than CI...

• Role-based Access Control

• Release Management

• Parallel and Distributed Builds

• Configurable JVM Wrapper

Apache Continuum

9

Page 10: Apache Continuum Build, Test, and Release

Prerequisites

• Java SE 5

• Maven, Ant, Script

• Subversion, CVS, Git

• Tests!

10

Page 11: Apache Continuum Build, Test, and Release

• Download

• Install

• Start and Stop

• Configure

• Build Definitions

• Build Environments

• Build Schedules

• Build Queues

• Release

• Project Groups

• Users and Roles

• Notifiers

• JVM Wrapper

• XML-RPC

Demo

11

Page 12: Apache Continuum Build, Test, and Release

Download

http://continuum.apache.org12

Page 13: Apache Continuum Build, Test, and Release

Install

• Unpack the distribution

• Continuum + Jetty + Derby

13

$ lsLICENSE apps conf derby.log logsNOTICE bin data lib tmp

Page 14: Apache Continuum Build, Test, and Release

Pre-Configure

• conf/jetty.xml

• Port number

• SMTP config

• Data sources

14

Page 15: Apache Continuum Build, Test, and Release

Start

• bin/continuum start

• Automatically detects platform

• Windows

• bin/continuum.bat console --or--

• bin/continuum.bat install (as a service)

15

Page 16: Apache Continuum Build, Test, and Release

Demo Setup

16

svn.example.comhttpd + mod_dav_svn

running locally

build.example.comContinuum + Jetty

running locally

command linedeveloper workstation

repo.example.comArchiva + Jettyrunning locally

Page 17: Apache Continuum Build, Test, and Release

Demo!

17

Page 18: Apache Continuum Build, Test, and Release

Admin User

18

Page 19: Apache Continuum Build, Test, and Release

Configure

19

Page 20: Apache Continuum Build, Test, and Release

Add Projects

• Maven 2

• Ant

• Maven 1

• Shell Script

20

Page 21: Apache Continuum Build, Test, and Release

Project Groups

• Logical group of projects

• Multi-module Maven project

21

Page 22: Apache Continuum Build, Test, and Release

Build

• Build all projects

• Order is determined by dependencies

• Build one or more projects

22

Page 23: Apache Continuum Build, Test, and Release

View Results

• Build status

• Build output

• Test results

• Working copy

23

Page 24: Apache Continuum Build, Test, and Release

Release

• Web interface

• Prepare, then Perform

• Consistent environment

24

Page 25: Apache Continuum Build, Test, and Release

End Demo

25

Page 26: Apache Continuum Build, Test, and Release

Installations

• Environment Variable

• Tool (Ant, Maven, JDK)

26

JDK Maven

var=value

Page 27: Apache Continuum Build, Test, and Release

Build Environments

27

Build Environment

JDK Maven var=value

Page 28: Apache Continuum Build, Test, and Release

Build Schedules

• Hourly by default

• crontab format

28

Schedule

When to run

Max time

Build Queue(s)

Page 29: Apache Continuum Build, Test, and Release

Build Definitions

• Build file such as pom.xml

• goals and arguments

• Schedule

• Build Environment

29

Page 30: Apache Continuum Build, Test, and Release

Build Queues

• For parallel builds

• Associated with Schedules

30

Build Queue 1

Build Queue 2

Page 31: Apache Continuum Build, Test, and Release

Notifiers

• Email, IRC, MSN, Jabber, Wagon

• Configure in Maven pom.xml

• Add directly to Continuum

• Can notify the latest committers

31

Page 32: Apache Continuum Build, Test, and Release

32

Parallel Builds

Page 33: Apache Continuum Build, Test, and Release

Distributed Builds

33

Page 34: Apache Continuum Build, Test, and Release

Users

• Self registration

• Per-project roles

• Web based

• Configurable security rules

34

Page 35: Apache Continuum Build, Test, and Release

XML-RPC

• Control Continuum from external scripts or programs

• Java examples available

35

Page 36: Apache Continuum Build, Test, and Release

JVM Wrapper

• conf/wrapper.conf

• http://wrapper.tanukisoftware.org

36

Page 37: Apache Continuum Build, Test, and Release

SCM Support

http://docs.codehaus.org/display/SCM/SCM+Matrix37

Page 38: Apache Continuum Build, Test, and Release

Alternatives

• Bamboo (Atlassian)

• Cruise Control (Thoughtworks)

• Hudson

• ... and many others

http://damagecontrol.codehaus.org/Continuous+Integration+Server+Feature+Matrix38

Page 39: Apache Continuum Build, Test, and Release

What’s coming?

• Plugin architecture

• Hosting project websites

• ... what do you need?

39

Page 40: Apache Continuum Build, Test, and Release

Where we need help

40

• Discussing and coding features and fixes

• UI Design and Usability

• Writing documentation

• Testing - JUnit, TestNG, Selenium

Page 41: Apache Continuum Build, Test, and Release

Where you can find us

41

• http://continuum.apache.org

[email protected]

• #continuum on irc.codehaus.org

• Here at ApacheCon!

Page 42: Apache Continuum Build, Test, and Release

Questions?

42

Page 43: Apache Continuum Build, Test, and Release

Apache ContinuumBuild, Test, and Release

Wendy Smoak

ApacheCon EuropeMarch 27, 2009