What is @aws-sdk/client-codebuild?
@aws-sdk/client-codebuild is a part of the AWS SDK for JavaScript, which allows developers to interact with AWS CodeBuild, a fully managed continuous integration service that compiles source code, runs tests, and produces software packages that are ready to deploy.
What are @aws-sdk/client-codebuild's main functionalities?
Start a Build
This feature allows you to start a new build for a specified CodeBuild project. The code sample demonstrates how to initiate a build using the StartBuildCommand.
const { CodeBuildClient, StartBuildCommand } = require('@aws-sdk/client-codebuild');
const client = new CodeBuildClient({ region: 'us-west-2' });
const params = {
projectName: 'my-project',
};
const run = async () => {
try {
const data = await client.send(new StartBuildCommand(params));
console.log('Build started:', data);
} catch (err) {
console.error('Error starting build:', err);
}
};
run();
List Builds
This feature allows you to list all the builds in your AWS account. The code sample demonstrates how to retrieve and print the list of build IDs using the ListBuildsCommand.
const { CodeBuildClient, ListBuildsCommand } = require('@aws-sdk/client-codebuild');
const client = new CodeBuildClient({ region: 'us-west-2' });
const run = async () => {
try {
const data = await client.send(new ListBuildsCommand({}));
console.log('Builds:', data.ids);
} catch (err) {
console.error('Error listing builds:', err);
}
};
run();
Get Build Details
This feature allows you to get detailed information about specific builds. The code sample demonstrates how to retrieve details for specified build IDs using the BatchGetBuildsCommand.
const { CodeBuildClient, BatchGetBuildsCommand } = require('@aws-sdk/client-codebuild');
const client = new CodeBuildClient({ region: 'us-west-2' });
const params = {
ids: ['build-id-1', 'build-id-2'],
};
const run = async () => {
try {
const data = await client.send(new BatchGetBuildsCommand(params));
console.log('Build details:', data.builds);
} catch (err) {
console.error('Error getting build details:', err);
}
};
run();
Other packages similar to @aws-sdk/client-codebuild
aws-sdk
The 'aws-sdk' package is the older version of the AWS SDK for JavaScript. It provides a comprehensive set of tools for interacting with AWS services, including CodeBuild. However, it is not modular like the '@aws-sdk/client-codebuild' package, which means it can be bulkier and less efficient for applications that only need specific services.
serverless
The 'serverless' package is a framework for building and deploying serverless applications. While it is not specifically focused on CodeBuild, it provides integrations with AWS services, including CodeBuild, to facilitate CI/CD pipelines. It offers a higher-level abstraction compared to '@aws-sdk/client-codebuild'.
aws-cdk
The 'aws-cdk' (AWS Cloud Development Kit) allows developers to define cloud infrastructure using familiar programming languages. It includes constructs for CodeBuild projects and pipelines, providing a higher-level, more abstract way to manage CI/CD compared to the '@aws-sdk/client-codebuild' package.
@aws-sdk/client-codebuild

Description
AWS SDK for JavaScript CodeBuild Client for Node.js, Browser and React Native.
AWS CodeBuild
AWS CodeBuild is a fully managed build service in the cloud. AWS CodeBuild compiles your source code,
runs unit tests, and produces artifacts that are ready to deploy. AWS CodeBuild eliminates the
need to provision, manage, and scale your own build servers. It provides prepackaged
build environments for the most popular programming languages and build tools, such as
Apache Maven, Gradle, and more. You can also fully customize build environments in AWS CodeBuild
to use your own build tools. AWS CodeBuild scales automatically to meet peak build requests. You
pay only for the build time you consume. For more information about AWS CodeBuild, see the
AWS CodeBuild User
Guide.
AWS CodeBuild supports these operations:
-
BatchDeleteBuilds
: Deletes one or more builds.
-
BatchGetBuilds
: Gets information about one or more builds.
-
BatchGetProjects
: Gets information about one or more build
projects. A build project defines how AWS CodeBuild runs a build.
This includes information such as where to get the source code to build, the
build environment to use, the build commands to run, and where to store the
build output. A build environment is a representation of
operating system, programming language runtime, and tools that AWS CodeBuild uses to run
a build. You can add tags to build projects to help manage your resources and
costs.
-
BatchGetReportGroups
: Returns an array of report groups.
-
BatchGetReports
: Returns an array of reports.
-
CreateProject
: Creates a build project.
-
CreateReportGroup
: Creates a report group. A report group contains
a collection of reports.
-
CreateWebhook
: For an existing AWS CodeBuild build project that has its
source code stored in a GitHub or Bitbucket repository, enables AWS CodeBuild to start
rebuilding the source code every time a code change is pushed to the
repository.
-
DeleteProject
: Deletes a build project.
-
DeleteReport
: Deletes a report.
-
DeleteReportGroup
: Deletes a report group.
-
DeleteResourcePolicy
: Deletes a resource policy that is identified
by its resource ARN.
-
DeleteSourceCredentials
: Deletes a set of GitHub, GitHub
Enterprise, or Bitbucket source credentials.
-
DeleteWebhook
: For an existing AWS CodeBuild build project that has its
source code stored in a GitHub or Bitbucket repository, stops AWS CodeBuild from
rebuilding the source code every time a code change is pushed to the
repository.
-
DescribeTestCases
: Returns a list of details about test cases for a
report.
-
GetResourcePolicy
: Gets a resource policy that is identified by its
resource ARN.
-
ImportSourceCredentials
: Imports the source repository
credentials for an AWS CodeBuild project that has its source code stored in a
GitHub, GitHub Enterprise, or Bitbucket repository.
-
InvalidateProjectCache
: Resets the cache for a project.
-
ListBuilds
: Gets a list of build IDs, with each build ID
representing a single build.
-
ListBuildsForProject
: Gets a list of build IDs for the specified
build project, with each build ID representing a single build.
-
ListCuratedEnvironmentImages
: Gets information about Docker
images that are managed by AWS CodeBuild.
-
ListProjects
: Gets a list of build project names, with each build
project name representing a single build project.
-
ListReportGroups
: Gets a list ARNs for the report groups in the
current AWS account.
-
ListReports
: Gets a list ARNs for the reports in the current AWS
account.
-
ListReportsForReportGroup
: Returns a list of ARNs for the reports
that belong to a ReportGroup
.
-
ListSharedProjects
: Gets a list of ARNs associated with projects
shared with the current AWS account or user.
-
ListSharedReportGroups
: Gets a list of ARNs associated with
report groups shared with the current AWS account or user
-
ListSourceCredentials
: Returns a list of
SourceCredentialsInfo
objects. Each
SourceCredentialsInfo
object includes the authentication type,
token ARN, and type of source provider for one set of credentials.
-
PutResourcePolicy
: Stores a resource policy for the ARN of a
Project
or ReportGroup
object.
-
StartBuild
: Starts running a build.
-
StopBuild
: Attempts to stop running a build.
-
UpdateProject
: Changes the settings of an existing build
project.
-
UpdateReportGroup
: Changes a report group.
-
UpdateWebhook
: Changes the settings of an existing
webhook.
Installing
To install the this package, simply type add or install @aws-sdk/client-codebuild
using your favorite package manager:
npm install @aws-sdk/client-codebuild
yarn add @aws-sdk/client-codebuild
pnpm add @aws-sdk/client-codebuild
Getting Started
Import
The AWS SDK is modulized by clients and commands.
To send a request, you only need to import the CodeBuildClient
and
the commands you need, for example BatchDeleteBuildsCommand
:
const { CodeBuildClient, BatchDeleteBuildsCommand } = require("@aws-sdk/client-codebuild");
import { CodeBuildClient, BatchDeleteBuildsCommand } from "@aws-sdk/client-codebuild";
Usage
To send a request, you:
- Initiate client with configuration (e.g. credentials, region).
- Initiate command with input parameters.
- Call
send
operation on client with command object as input. - If you are using a custom http handler, you may call
destroy()
to close open connections.
const client = new CodeBuildClient({ region: "REGION" });
const params = {
};
const command = new BatchDeleteBuildsCommand(params);
Async/await
We recommend using await
operator to wait for the promise returned by send operation as follows:
try {
const data = await client.send(command);
} catch (error) {
} finally {
}
Async-await is clean, concise, intuitive, easy to debug and has better error handling
as compared to using Promise chains or callbacks.
Promises
You can also use Promise chaining
to execute send operation.
client.send(command).then(
(data) => {
},
(error) => {
}
);
Promises can also be called using .catch()
and .finally()
as follows:
client
.send(command)
.then((data) => {
})
.catch((error) => {
})
.finally(() => {
});
Callbacks
We do not recommend using callbacks because of callback hell,
but they are supported by the send operation.
client.send(command, (err, data) => {
});
v2 compatible style
The client can also send requests using v2 compatible style.
However, it results in a bigger bundle size and may be dropped in next major version. More details in the blog post
on modular packages in AWS SDK for JavaScript
import * as AWS from "@aws-sdk/client-codebuild";
const client = new AWS.CodeBuild({ region: "REGION" });
try {
const data = client.batchDeleteBuilds(params);
} catch (error) {
}
client
.batchDeleteBuilds(params)
.then((data) => {
})
.catch((error) => {
});
client.batchDeleteBuilds(params, (err, data) => {
});
Troubleshooting
When the service returns an exception, the error will include the exception information,
as well as response metadata (e.g. request id).
try {
const data = await client.send(command);
} catch (error) {
const { requestId, cfId, extendedRequestId } = error.$metadata;
console.log({ requestId, cfId, extendedRequestId });
}
Getting Help
Please use these community resources for getting help.
We use the GitHub issues for tracking bugs and feature requests, but have limited bandwidth to address them.
To test your universal JavaScript code in Node.js, browser and react-native environments,
visit our code samples repo.
Contributing
This client code is generated automatically. Any modifications will be overwritten the next time the @aws-sdk/client-codebuild
package is updated.
To contribute to client you can check our generate clients scripts.
License
This SDK is distributed under the
Apache License, Version 2.0,
see LICENSE for more information.