Integrate code, build artifacts, manage release AWS CodeBuild might be a good option if you are familiar with the pain of these processes. AWS CodeBuild can help you manage a project that has been developed by multiple team members simultaneously. It is composed of different functions and environments, as well as languages.
AWS CodeBuild, a fully managed service, compiles your source code for you and provides you with a software package that you can use to deploy directly into your servers. CodeBuild can be used to simplify your development process instead of creating and scaling your own build servers fleet. AWS CodeBuild is flexible, scalable, easy to use, and elastic. It launches a new, isolated container-based environment for each build and terminates it when the build process is over. CodeBuild can also be used as an AWS CodePipeline Builder Provider
Let’s take a look at the main Terminologies for AWS CodeBuild.
AWS CodeBuild uses Docker containers depending on the environment to build your code. AWS provides build environments, or you can download existing Docker images from Docker Hub or Elastic Container Registry. AWS currently offers build environments for Java and Android, Ruby, Node.js Python, and Docker (to create Docker images). During the build process, all output from command lines is streamed to AWS management console. Let’s look at the build process.
CodeBuild retrieves code from the Source repository. It could be S3 Bucket or GitHub Repository or AWS CodeCommit Repository.
Executes the commands from the build spec. You can either have a buildspec.yml in your source code root directory, or you can write your own build commands. The buildspec has four phases. Pre-build, install, build, and post-build are the four phases of the buildspec.
-> Install – Install the packages in the build environment, if applicable.-> Build – Commands to build the artifact.->Post-build – Commands to run following the build.
Upload the artifact to S3 using optional KMS encryption.
Here’s an example of your buildspec.yml
version: 0.1environment_variables:plaintext:JAVA_HOME: “/opt/java-8-openjdk-amd64″phases:install:commands:- apt-get update -y- apt-get install -y mavenpre_build:commands:- echo This is pre_buildbuild:commands- echo Starting build `date`- mvn clean packagepost_build:commands:- echo Build completed on `date`artifacts:files:- target/messageUtil-1.0.jardiscard-paths: yes1234567891011121314151617181920212223version: 0.1environment_variables:plaintext:JAVA_HOME: “/opt/java-8-openjdk-amd64″phases:install:commands:- apt-get update -y- apt-get install -y mavenpre_build:commands:- echo This is pre_buildbuild:commands- echo Starting build `date`- mvn clean packagepost_build:commands:- echo Build completed on `date`artifacts:files:- target/messageUtil-1.0.jardiscard-paths: yes
Let’s now see how to create your first project using AWS CodeBuild. Here’s how I will show you how to create a maven project. I have my maven code zipped, and pushed into S3 bucket.
Step1: Create a project in AWS CodeBuild console.
Step2: Give a name and a description of the project.
Step3: Select Source Provider as S3, choose your bucket from the dropdown list, and then provide your filename.
Step4: Create your environment for building. Let’s use AWS to manage our image. Select Runtime as Java and choose Java: openjdk-8 for the version. The Build command will give you mvn clean packages.
Step5: Describe the location where you want your artifacts saved.
Step6: Choose the Service role that you want for your project, and click on Continue.
Step7: Click Save and Build to begin building.
Step8: This will create your project. To view your build logs, use the console.
Open the project and choose the