Atlassian Bamboo from Beginner to Advanced!
Learn the important features of Atlassian Bamboo – a key tool used by software developers!
Atlassian Bamboo is one of the leading Continuous Integration and Delivery tools essential for engineers to know. This course provides useful information and skill-based learning for key features of this technology.
Atlassian Bamboo is particularly preferred when teams use a variety of programming languages and frameworks, e.g. .NET, Java, PHP, Python, etc.
In this course, I will teach you:
How an efficient CI/CD system is implemented;
How a software development team (including developers, testers and DevOps engineers) can use various features of Bamboo to quickly build, package and deploy their software product.
No pre-requisite knowledge is required to complete this course, but a positive attitude and a willingness to learn is a must!
Questions are always welcome from students and can be asked in the Q&A section of the course. I endeavour to respond to these quickly so I can create an engaging learning environment for my students and share my experience gained from over 20 years in the software development industry.
I look forward to seeing you in the course!
Welcome to Atlassian Bamboo! In this introduction lecture we will learn about the fundamentals of Bamboo, and the structure of projects in Bamboo including projects, stages, jobs and tasks.
This lecture is about what problems Bamboo can solve for a development team, and what is the best deployment model for Bamboo
All the details about installation of Bamboo is here. Since Bamboo is a Java application as long as you have Java Runtime (JVM) installed on your favourite operating system you can install Bamboo.
Build Agent is a computer that builds your project and run your unit tests. There are several types of Build Agents that you can use in Bamboo. Learn these different types of Build Agents.
In this lecture we work with AWS a bit! That is because we use a Domain Name so that we can find our servers and build agents easier. Also when you setup Bamboo for your business you most likely will set it up on the cloud. AWS is a good choice of the cloud as it gives you both the Servers and the Databases in a managed manner.
Remote build agents are the most common type of build agents. In this lecture we will see how they are setup.
Build agents cannot do much themselves unless you add "capabilities" to them. Capabilities are merely executable files that can do things like compiling code, running unit tests, compressing files etc.
If you use AWS then Elastic Build Agents must be very interesting to you as they can save you $$$ ! Elastic build agents are created automatically when you actually need them. They then get terminated with you don't need them. So you only pay for what you use and that will save you money.
We continue on setting up Elastic Build Agents
Last part on setting up Elastic Build Agents
To reduce the cost even further you can run your Elastic Build agents on Spot Instances, and to make sure at the busy times you have enough build agents you can schedule the launch of build agent servers.
Build Plans. Building and Packaging your code
Each application in Bamboo will have a Project. Projects have a rather complex structure in Bamboo which makes it very flexible and powerful. Projects are made of Stages, Jobs and Tasks. Some of these steps can execute in parallel whilst some others are executed sequentially only. In this lecture you will learn how you can leverage the power of this flexible project structure to build and test your application fast.
Now that you have your projects ready it is time to get your source control from your Source Control system such as GitHub or BitBucket!
In this topic we work on a project which we cloned from GitHub and we set up jobs and tasks for it.
So now that the project is ready and the source code has been cloned, we compile our code. We will see how we can setup the required capacities to build and package our project.
Reuse is almost always a good technique to reduce work and avoid mistakes! Bamboo allows us to use variables so that we will not have to hard-code everything. And that will enable us to reuse the projects. In this lecture we will learn about the variables in Bamboo.
Continue learning about parametrisation and variables.
Triggering Builds manually is one way of building and packaging our projects but it will be more efficient if we can build our code based on certain vents such as when a developer commits a change to the source control system or on a certain time of the day. This happens through Build Triggers which we learn about in this topic.
"Branching" is a good feature in Git and many other source control systems such as Subversion (SVN). Feature branches let developers work on different features in separation and so they may need different build plans which suit their feature branch. In this topic we will learn about one of the really powerful features of Bamboo which is called "Branch Plans" .
A CI/CD system without the ability of running unit tests is not complete and Bamboo is no exception! In this topic it is discussed that how you can run Unit Tests.
If you are a DotNet or Java developer then this lecture must be very interesting to you! Code Inspection is a great way of making sure that when developers check-in their code, or when someone merges a pull request, their code meet a really good quality!
Working with Artifacts
The output of each build project is an Artefact! This lecture will teach you that how you produce an artefact.
Artefacts are stored on the server but it is not ideal. So in this topic we will learn how we can compress all the files in a given artefact and download them.
Continuous Delivery is a key part of an efficient CI/CD system. In this lecture I will show you how you can deploy your artefacts.
Many developers use AWS to host their web applications and server applications. In this lecture we will see how AWS Code Deploy can be used for a seamless deployment.
AWS CodeDeploy service needs CodeDeploy Agent, which is a Windows service (because we use a Windows server), in order to deploy the artifact on the target server. In this topic we will install and configure the CodeDeploy agent.
When you deploy your application to different environments, it will need a different configuration for each deployment. For example if your application connects to databases, the connection string to the database will change based on the environment. We will see how you can choose the right configuration files for your application.
Are you an ASP .NET developer? Then you must know how painful it is to transform your web dot config files! This lecture is for you so you see how you can transform your web dot config files and pick the right one up at the time of deployment.
If you are not a DotNet developer you can skip this lecture.
Not only you can automatically build your code based on build triggers but also you can deploy your artefacts automatically based on certain triggers! This is great to have a one-click build and deploy kind of CI/CD system.
At the end of this lecture you will learn about the various permissions and access levels you can grant to users.
If you need to let certain users know about the various events that happen in Bamboo, such as failing builds, then you will find this topic very useful. Once you finish this lecture you will be able to define alerts and notifications in Bamboo and integrate them with various channels such as Slack
If you are the administrator in Bamboo you can add more users and groups so that you can grant access to other developers in your team. Then you can control what access rights each individual person or a group of people can have.