

So you can choose that, for example, QA environment is okay to get automatic deployments, whereas production environment cannot get automatic deployments.
#BAMBOO SOFTWARE TOOLS CODE#
Or you can manually deploy it into, say, your production environment, because your production environment is protected and you only want authorized people to deploy the code to the production environment. And then what you can do with this artifact is that you can ask Bamboo to deploy it automatically to some environments, for example, to your test environment, to your QA environment. So when you build your code in Bamboo, it's going to give you an artifact. That is the compiled program, that's your code artifact. For example, when you publish your website, the HTML pages and all the backend code, everything which you will run with IIS or with Apache, that's your code artifact.

Now, when we compile and build our source code, it's gonna create something that we call an artifact. This entire thing is the continuous integration. And as soon as it detects a change, it's gonna pick up the change and then put it with the rest of the source code and compile it and then run the unit test and potentially run some code quality checks and only allow the change to go to our source control system when it confirms that the change is okay and it meets our expectations. So what happens is that we need a build server such as Bamboo, a continuous integration server such as Bamboo to be there and just constantly watch the source control repository. So we want to make sure when we put everything together, again, the code compiles and all the unit tests are executed without any problems. Some code changes may break the unit tests. Although the code compiled and worked perfectly on the local development machine, that doesn't guarantee that when all the changes from different developers come together, they are going to work together as well, because some changes might clash and the code might not compile. Then they commit their code to the source control system. And when they finish their job, they compile the code on their local machine, they run the unit test on their local machine, and they make sure that everything is okay. So these people will work together, potentially in different timezones and they might not even see each other. For example, my team is scattered across Australia and the U.K. So your team will have several developers or you may even have a distributed team, which means that some of your developers will be in one physical location and some of the developers will be in other physical location or even potentially in a different country. So I'm going to explain the continuous integration and delivery on this slide. If you want to learn more about it, you can read the book. This is the definition provided by Martin Fowler, the author of the book, Patterns of Enterprise Integration Architecture. But what is continuous integration? Continuous integration is a software development practice to make sure that changes made by different developers will integrate together well. You normally see continuous integration and the delivery together or it might be also presented as CI/CD. What is Atlassian Bamboo? Bamboo is a continuous integration or CI server that can be used to automate the build, test, and release management for a software application, creating a continuous delivery pipeline. Hello and welcome to Continuous Integration and Delivery with Atlassian Bamboo.
