Build and test your code

AWS CodeBuild runs your builds in preconfigured build environments that contain the operating system, programming language runtime, and build tools (e.g., Apache Maven, Gradle, npm) required to complete the task. You just specify your source code’s location and select settings for your build, such as the build environment to use and the build commands to run during a build. AWS CodeBuild builds your code and stores the artifacts into an Amazon S3 bucket, or you can use a build command to upload them to an artifact repository. You can create, manage, and initiate build projects using AWS CodePipeline, the AWS Management Console, AWS CLIs, or SDKs.

Preconfigured build environments

AWS CodeBuild provides build environments for Java, Python, Node.js, Ruby, Go, Android, .NET Core for Linux, and Docker.

See a full list of preconfigured build environments here

Customize build environments

You can bring your own build environments to use with AWS CodeBuild, such as for the Microsoft .NET Framework. You can package the runtime and tools for your build into a Docker image and upload it to a public Docker Hub repository or Amazon EC2 Container Registry (Amazon ECR). When you create a new build project, you can specify the location of your Docker image, and CodeBuild will pull the image and use it as the build project configuration. 

Configurable settings

Specify build commands

You can define the specific commands that you want AWS CodeBuild to perform, such as installing build tool packages, running unit tests, and packaging your code. The build specification is a YAML file that lets you choose the commands to run at each phase of the build and other settings. CodeBuild helps you get started quickly with sample build specification files for common scenarios, such as builds using Apache Maven, Gradle, or npm.

See build specification sample files here.

Select compute type

You can select the compute type that is best suited to your development needs. You can choose from three levels of compute capacity that vary by the amount of CPU and memory. This lets you choose higher CPU and memory compute if you want your builds to complete faster, or if your builds require a minimum level of CPU and memory to complete.  CodeBuild supports Linux and Windows operating systems.

Choose source integrations

You can initiate builds with AWS CodeBuild in several ways. For example, you can initiate builds in CodeBuild after connecting to AWS CodeCommit, GitHub, GitHub Enterprise, Bitbucket, or Amazon S3. You can also connect CodeBuild and your source repository with AWS CodePipeline, which automatically initiates a build every time you commit a change.

Continuous integration and delivery workflows

AWS CodeBuild’s on-demand compute and pay-as-you-go model enables you to build and integrate code more frequently, helping you find and fix bugs early in the development process when they are easy to fix. You can integrate CodeBuild into your existing continuous integration and continuous delivery (CI/CD) workflow using its source integrations, build commands, or Jenkins integration. CodeBuild also belongs to a family of AWS Code Services that helps you practice CI/CD. You can plug CodeBuild into AWS CodePipeline, which automates building and testing code in CodeBuild each time you commit a change to your source repository. You can create this CI workflow by using the AWS CodePipeline wizard to connect your source repository and then select CodeBuild as the build provider.

You can easily extend your continuous integration workflow into continuous delivery with CodePipeline by integrating third-party load or user interface testing tools (e.g. BlazeMeter, Ghost Inspector) that initiate after CodeBuild completes the build. You can then deploy to your instances or on-premises servers using services integrated with AWS CodePipeline, such as AWS CodeDeploy and AWS Elastic Beanstalk.

Security and permissions

Your build artifacts are encrypted with customer-specific keys that are managed by the AWS Key Management Service (KMS). AWS CodeBuild is integrated with AWS Identity and Access Management so you can set granular controls over which users and AWS resources have access to your builds.

Monitoring

You can use the AWS CodeBuild Console, AWS CLI, SDKs, and APIs, or Amazon CloudWatch to view detailed information about your builds. AWS CodeBuild shows you information such as the build’s start time, end time, status and commit ID. CodeBuild also streams build metrics and logs to CloudWatch. You can use CloudWatch to create a custom dashboard, set a CloudWatch Alarm, troubleshoot build issues, or inspect build logs.

Receive Notifications

You can create notifications for events impacting your build projects. Notifications will come in the form of Amazon SNS notifications. Each notification includes a status message as well as a link to the resources whose event generated that notification.

Learn more about AWS CodeBuild pricing

Visit the pricing page
Ready to build?
Get started with AWS CodeBuild
Have more questions?
Contact us