SIGN IN SIGN UP

Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.

0 0 16 Java
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import { fileURLToPath } from "node:url";
// snippet-start:[javascript.v3.codebuild.actions.CreateProject]
import {
ArtifactsType,
CodeBuildClient,
ComputeType,
CreateProjectCommand,
EnvironmentType,
SourceType,
} from "@aws-sdk/client-codebuild";
// Create the AWS CodeBuild project.
export const createProject = async (
projectName = "MyCodeBuilder",
roleArn = "arn:aws:iam::xxxxxxxxxxxx:role/CodeBuildAdmin",
buildOutputBucket = "xxxx",
githubUrl = "https://...",
) => {
const codeBuildClient = new CodeBuildClient({});
const response = await codeBuildClient.send(
new CreateProjectCommand({
artifacts: {
// The destination of the build artifacts.
type: ArtifactsType.S3,
location: buildOutputBucket,
},
// Information about the build environment. The combination of "computeType" and "type" determines the
// requirements for the environment such as CPU, memory, and disk space.
environment: {
// Build environment compute types.
// https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html
computeType: ComputeType.BUILD_GENERAL1_SMALL,
// Docker image identifier.
// See https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html
image: "aws/codebuild/standard:7.0",
// Build environment type.
type: EnvironmentType.LINUX_CONTAINER,
},
name: projectName,
// A role ARN with permission to create a CodeBuild project, write to the artifact location, and write CloudWatch logs.
serviceRole: roleArn,
source: {
// The type of repository that contains the source code to be built.
type: SourceType.GITHUB,
// The location of the repository that contains the source code to be built.
location: githubUrl,
},
}),
);
console.log(response);
// {
// '$metadata': {
// httpStatusCode: 200,
// requestId: 'b428b244-777b-49a6-a48d-5dffedced8e7',
// extendedRequestId: undefined,
// cfId: undefined,
// attempts: 1,
// totalRetryDelay: 0
// },
// project: {
// arn: 'arn:aws:codebuild:us-east-1:xxxxxxxxxxxx:project/MyCodeBuilder',
// artifacts: {
// encryptionDisabled: false,
// location: 'xxxxxx-xxxxxxx-xxxxxx',
// name: 'MyCodeBuilder',
// namespaceType: 'NONE',
// packaging: 'NONE',
// type: 'S3'
// },
// badge: { badgeEnabled: false },
// cache: { type: 'NO_CACHE' },
// created: 2023-08-18T14:46:48.979Z,
// encryptionKey: 'arn:aws:kms:us-east-1:xxxxxxxxxxxx:alias/aws/s3',
// environment: {
// computeType: 'BUILD_GENERAL1_SMALL',
// environmentVariables: [],
// image: 'aws/codebuild/standard:7.0',
// imagePullCredentialsType: 'CODEBUILD',
// privilegedMode: false,
// type: 'LINUX_CONTAINER'
// },
// lastModified: 2023-08-18T14:46:48.979Z,
// name: 'MyCodeBuilder',
// projectVisibility: 'PRIVATE',
// queuedTimeoutInMinutes: 480,
// serviceRole: 'arn:aws:iam::xxxxxxxxxxxx:role/CodeBuildAdmin',
// source: {
// insecureSsl: false,
// location: 'https://...',
// reportBuildStatus: false,
// type: 'GITHUB'
// },
// timeoutInMinutes: 60
// }
// }
return response;
};
// snippet-end:[javascript.v3.codebuild.actions.CreateProject]
// Invoke main function if this file was run directly.
if (process.argv[1] === fileURLToPath(import.meta.url)) {
createProject();
}