A Buildspec File is a series of commands in YAML format that CodeBuild executes to build your application. This file is placed in the root folder of a SAM application and CodeBuild will automatically find it and run it during build time.
In your Cloud9 editor, create a new file named
buildspec.yml in the root (top level) of the sam-app directory by right clicking on the
sam-app folder and selecting New file.
The extension of the file can be either
yaml, CodeBuild will find it either way.
Then, paste the following content into the file:
# ~/environment/sam-app/buildspec.yml version: 0.2 phases: install: runtime-versions: python: 3.7 commands: # Install packages or any pre-reqs in this phase. # Upgrading SAM CLI to latest version - pip3 install --upgrade aws-sam-cli - sam --version - pip3 install pytest - cd $CODEBUILD_SRC_DIR/hello_world - pip3 install -r requirements.txt pre_build: commands: # Run tests, lint scripts or any other pre-build checks. - cd $CODEBUILD_SRC_DIR - python3 -m pytest tests/unit build: commands: # Use Build phase to build your artifacts (compile, etc.) - cd $CODEBUILD_SRC_DIR - sam build post_build: commands: # Use Post-Build for notifications, git tags, upload artifacts to S3 - sam package --output-template-file packaged.yaml --s3-bucket $PACKAGE_BUCKET --s3-prefix sam-cli artifacts: discard-paths: yes files: # List of local artifacts that will be passed down the pipeline - packaged.yaml
Save the file. It should look like the following screenshot.
Take a moment to understand the structure of the file and feel free to read the Buildsec Reference here: https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html.
Commit your changes and push them to the repository.
cd ~/environment/sam-app git add . git commit -m "Added buildspec.yml" git push
Navigate to your CodePipeline again, and wait for it to trigger automatically. This time the build will succeed: