Spira v8.1 Released: Integration with AWS CodeBuild and CodePipelines

24-Jun-2024 by Adam Sandman Product News

We are excited to announce the recent release of SpiraTeam and SpiraPlan v8.1, our award-winning Spira application lifecycle management platform. In this new release, we have introduced seamless integration between Spira and the Amazon Web Services (AWS) Code Platform.

What is AWS CodeBuild?

AWS CodeBuild is a fully managed build service that compiles source code, runs tests, and produces software packages that are ready to deploy. It's part of the Amazon Web Services (AWS), cloud computing platform.

Here are some key features of AWS CodeBuild:

  1. Fully Managed Service: CodeBuild eliminates the need to set up, patch, and manage your own build servers. It scales automatically to handle multiple builds concurrently.

  2. Continuous Scaling: The service scales up and down automatically to meet the number of builds you need to complete.

  3. Pay as You Go: You pay only for the compute resources you use during the build, making it cost-effective for projects of any scale.

  4. Integration with Other AWS Services: It integrates seamlessly with AWS CodePipeline, Amazon S3, AWS Identity and Access Management (IAM), and other services to support a complete software release workflow.

  5. Customizable Build Environments: You can use pre-packaged build environments, or you can specify custom build environments based on Docker, allowing you to define your own build tools and environments.

  6. Security: Builds are run in isolated environments, and CodeBuild is integrated with IAM to assign specific permissions to build projects.

  7. Support for Multiple Programming Languages: It supports several programming languages and build tools such as Java, Python, Ruby, Go, Node.js, Android, and Docker.

AWS CodeBuild is a robust tool particularly suited for developers who need a reliable, scalable, and efficient way to automate builds and testing as part of a CI/CD pipeline in the AWS ecosystem.

 

What is AWS CodePipeline, and How Is It Different from AWS CodeBuild?

AWS CodePipeline and AWS CodeBuild are both parts of Amazon Web Services' suite of developer tools, but they serve different purposes within the realm of continuous integration and continuous delivery (CI/CD). Here’s how they differ and what each one is specifically used for:

 

AWS CodePipeline

AWS CodePipeline is a continuous integration and continuous delivery service for fast and reliable application and infrastructure updates.

CodePipeline automates the build, test, and deploy phases of your release process every time there is a code change based on the release model you define. Here are some of its key features:

  • Automation of Release Processes: CodePipeline automates the steps required to release your software changes continuously.
  • Modular Design: You can define your build, test, and deploy stages and use different tools for each stage (e.g., GitHub for source control, CodeBuild for building the project, and AWS Elastic Beanstalk for deployment).
  • Integration with Third-party Services: It integrates with third-party services like GitHub, Bitbucket, GitLab for source control and Jenkins or TeamCity for builds.
  • Customizable Workflow: You can customize the workflow to suit your development process. Each action in a pipeline is a plug-in to an external service, which can be swapped or reconfigured as needed.

 

AWS CodeBuild

AWS CodeBuild, on the other hand, is a service specifically focused on compiling code, running tests, and producing ready-to-deploy software packages. It's essentially a single component of the broader CI/CD pipeline that can be used independently or integrated into CodePipeline. Here are its specific features:

  • Fully Managed Build Service: CodeBuild runs each build in a fresh environment, handling the infrastructure, environment scaling, and build execution.
  • Integrated with AWS Services: It works well with other AWS services, allowing you to store artifacts in Amazon S3 and manage identities via AWS IAM.
  • Support for Custom Build Environments: You can use pre-configured environments or define your own custom Docker containers.

 

Differences

  • Scope: CodePipeline orchestrates the flow of changes from source control through build, test, and deployment. CodeBuild is focused solely on the build or test phase and can be used as one of the steps within a CodePipeline pipeline or separately for any build or test tasks.
  • Integration: CodePipeline is designed to integrate various steps into a cohesive workflow, whereas CodeBuild is primarily a tool that executes one of these steps — the build or test phase.
  • Usage: If you just need to automate the compilation and testing of your code, CodeBuild might be sufficient. If you need a full pipeline that includes CI/CD processes with stages for build, test, and deployment, then CodePipeline is necessary, possibly incorporating CodeBuild as one of its stages.

In practice, many AWS customers use both together to take full advantage of automated CI/CD pipelines within the AWS ecosystem. CodePipeline manages the overall workflow and uses services like CodeBuild and others to handle specific tasks within the pipeline.

 

How Does the Integration Between Spira & AWS Code Work?

SpiraTeam integrates seamlessly with AWS Code tools in a variety of ways. You can easily configure your AWS CodeBuild projects to report against a release by creating a new build in SpiraTeam each time they run. This lets you see the health of your CI/CD process within SpiraTeam.

AWS CodeBuilds in Spira

You can easily configure your AWS CodeBuild projects to report against a release by creating a new build in Spira each time they run. This let's you see the health of your CI/CD process within Spira. You can record the results of a build against a single release, or multiple releases, even if they are in different products. Any CodeBuild project that is set up to report to Spira will also report to Spira if the project is run as part of an AWS CodePipeline. This give a lot of flexibility in how to track builds from AWS in Spira.

The flexibility is enabled by the use of AWS environment variables:

AWS CodeBuild can pass environmental variables into the build process and send these as part of the recording process in Spira.

Whenever the AWS CodeBuild project runs - manually, automatically, or as part of an AWS CodePipeline, the build will be recorded against the specified release(s) in Spira (as long as the user has permissions to create a build in the relevant product(s)).

Spira creates a build against that release with the key information, including the build status.

 

Where Can I Learn More

For more information on the new AWS CodeBuild and CodePipeline integration, please check out the topic in SpiraDocs.