Codebuild
Codebuild
Input: Github Link or zipped file in S3
Output: Build artifacts or upload Docker image to ECR
Very versatile and simple
basically running bash commands with some sugar for uploading and downloading and sdks api for kicking off in different languages
Uses:
Kick off some scripts(async?) from APIs
Build some code from github/s3 and output it to an S3
Notes
To build Docker images, you need to allow privileged access or use the AWS Ubuntu Docker runtime which lets u use the Docker daemon for building
Automagically unzips the file if your source is a zip
Artifacts are searched for based on the base dir
buildspec.yml
version: 0.2
phases:
install:
runtime-versions:
java: openjdk8
nodejs: 10
pre_build:
commands:
- echo Building image
- ls
- cd GraderFiles
build:
commands:
- pwd
- echo START PUBLIC LOG
- docker build -t test .
- echo END PUBLIC LOG
post_build:
commands:
- docker image ls
- docker save test -o test.tar
- echo $CODEBUILD_SRC_DIR
artifacts:
files:
- test.tar
Artifacts
'**/*'
represents all files recursively.my-subdirectory/*
represents all files in a subdirectory named my-subdirectory.my-subdirectory/**/*
represents all files recursively starting from a subdirectory named my-subdirectory.
Example 2 Running AWSCLI and Server Artifact
The IAM role for the codebuild needs access policy S3FullAccess
version: 0.2
phases:
install:
runtime-versions:
nodejs: 10
commands:
- npm i npm@latest -g
- pip install --upgrade pip
- pip install --upgrade awscli
pre_build:
commands:
- ls
- cd client
- npm install
build:
commands:
- npm run build
post_build:
commands:
- echo $CODEBUILD_SRC_DIR
- pwd
- aws s3 sync build s3://nibble-main
artifacts:
files:
- "**/*"
base-directory: server
Last updated