Atlassian Bamboo Server Tutorial
Bamboo is a continuous integration and deployment server. It provides an automated and reliable build/test process for software source-codes. It is an efficient way to manage the build that have different requirements. The build and test processes are triggered automatically on completion of the code.
It provides sophisticated methodology for the
Software development teams as:
a) An automated building and testing of
software source-code
b) Providing updates on successful and failed builds
c) Reporting tools for statistical Analysis
d) Build information
b) Providing updates on successful and failed builds
c) Reporting tools for statistical Analysis
d) Build information
What problem
does Bamboo solve?
If you are
a solo developer, then using Bamboo gives you:
· an
automated, and therefore reliable, build and test process, leaving you free to
code more.
· a way to manage
builds that have different requirements or targets.
· automatic
deployment to a server, such as the App Store or Google Play.
If you work
in a team, then as well as the above advantages, using Bamboo also means that:
· your
build and test process is not dependent on a specific local environment.
· builds and
integration tests are triggered automatically as soon as a developer commits
code (continuous integration).
If you work
on a large, complex application, then, in addition to all the above advantages,
using Bamboo means that:
· you
can optimize build performance through parallelism.
· you can leverage
elastic resources.
· you can deploy
continuously, for example to user acceptance testing (UAT).
· you can implement
release management.
How does
Bamboo do this?
· Bamboo
is the central management server which schedules and coordinates all work.
· Bamboo
itself has interfaces and plugins for lots of types of work.
· Bamboo
first gets your source from a source repository (lots of plugins here for a variety
of systems).
· Then Bamboo
starts the build - that can be done by calling something like MSBuild to build
your Visual Studio solution, or Maven to call your compiler and linker -
whatever you use.
· Once your
solution or project is built, you have "artifacts" (build results,
for example, an executable app, config files, etc.).
· You can do
additional things with the build artifacts:
· zip
them up into a ZIP file and copy them somewhere.
· run an install
builder on them and create an MSI.
· install them on a
test server to make sure everything installs just fine.
· Bamboo provides a
web front-end for configuration and for reporting the status of builds.
What does
Bamboo need?
Bamboo
schedules and coordinates the work involved in building and testing your
application. Therefore, to use Bamboo, you will need to already have the
following set up:
· a
code repository that contains the complete source code for the project.
· build scripts
· test suites
It is
generally assumed that the person who commits a change to the code is
responsible for fixing any resulting build errors immediately.
How is a
Bamboo workflow organized?
Bamboo uses
the concept of a 'plan' with 'jobs' and 'tasks' to configure and order the
actions in the workflow.
Project
· Has
none, one, or more, plans.
· Provides reporting (using the wallboard, for
example) across all plans in the project.
· Provides links to
other applications.
· Allows setting up
permissions for all the plans it contains
Plan
· Processes a
series of one or more stages that are run sequentially using
the same repository.
· Specifies the
default repository.
· Specifies how the
build is triggered, and the triggering dependencies
between the plan and other plans in the project.
· Specifies notifications of build results.
· Specifies who
has permission to view and configure the
plan and its jobs.
· Provides for the
definition of plan variables.
Stage
· Has
a single job, by default, but can be used to group
multiple jobs.
· Processes its
jobs in parallel, on multiple agents (where available).
· May produce artifacts that can be made available
for use by a subsequent stage.
Job
· Controls the
order in which tasks are performed.
· Collects
the requirements of individual tasks in
the job, so that these requirements can be
matched with agent capabilities.
· Defines the artifacts that the build will produce.
· Can only use artifacts produced
in a previous stage.
· Specifies
any labels with which the build result or build artifacts will
be tagged.
Task
· Is
a small discrete unit of work, such as source code checkout, executing a Maven
goal, running a script, or parsing test results.
· Is run
sequentially within a job on a Bamboo working directory.
Please follow next tutorial on Atlassian Bamboo Installation and configuration