What Are The Components Of AWS CodeBuild
In this blog post, we will start with another AWS DevOps tool AWS CodeBuild and will discuss what are the different components and features of AWS CodeBuild service.
What Is AWS CodeBuild:
AWS CodeBuild is a fully managed build service in the cloud. CodeBuild compiles your source code, runs unit tests, and produces artifacts that are ready to deploy. CodeBuild eliminates the need to provision, manage, and scale your own build servers. It provides prepackaged build environments for popular programming languages and build tools such as Apache Maven, Gradle, and more. You can also customize build environments in CodeBuild to use your own build tools. CodeBuild scales automatically to meet peak build requests.
What Are The Components Of AWS CodeBuild:
CodeBuild Build Project:
As input, you must provide CodeBuild with a build project. A build project includes information about how to run a build, including where to get the source code, which build environment to use, which build commands to run, and where to store the build output. A build environment represents a combination of operating system, programming language runtime, and tools that CodeBuild uses to run a build.
CodeBuild buildspec file:
A buildspec is a collection of build commands and related settings, in YAML format, that CodeBuild uses to run a build. You can include a buildspec as part of the source code or you can define a buildspec when you create a build project. By default, the buildspec file must be named buildspec.yml and placed in the root of your source directory.
CodeBuild Build environment:
When you call AWS CodeBuild to run a build, you must provide information about the build environment. A build environment represents a combination of operating system, programming language runtime, and tools that CodeBuild uses to run a build. A build environment contains a Docker image. When you provide information to CodeBuild about the build environment, you specify the identifier of a Docker image in a supported repository type. These include the CodeBuild Docker image repository, publicly available images in Docker Hub, and Amazon Elastic Container Registry (Amazon ECR) repositories that your AWS account has permissions to access.
- Supports multiple sources like CodeCommit, S3 bucket, Bitbucket, GitHub etc.
- Supports multiple docker image sources like Docker Hub, AWS ECR or any other external source.
- Supports multiple environments like .net, go, nodejs, java, php, powershell, python or ruby.
- Supports custom environment configuration through environment variables
- Supports integration of AWS IAM through service role.
- Supports connectivity with your existing AWS resources in your VPC using VPC endpoints.
- Supports creation of test reporting like Cucumber JSON, JUnit XML, NUnit XML, NUnit3 XML, TestNG XML or Visual Studio TRX.
- Supports multiple compute instance types to support your build needs.
- Supports monitoring and logging of your builds through CloudWatch, CloudTrail and S3.
- Supports storing of reusable pieces of your build environment in the form of build cache.
- Supports scheduled and custom build triggers.
- Supports notification rules to notify users when important changes, such as build successes and failures, occur.
Hope you have enjoyed this blog post; we will cover most of the CodeBuild components and features in the upcoming blog posts. To get more details on AWS CodeBuild, please refer below AWS documentation