JetBrains (Victory Petrenko / JetBrains)
Latest nightly build on builds on the public TeamCity server compatible with
The plugin makes a TeamCity build a part of an AWS CodePipeline stage by providing a custom job worker for theTeamCity the TeamCity Build and Test AWS CodePipeline actions.
It adds the
AWS CodePipeline Action build trigger which polls the AWS CodePipeline for jobs. After the trigger detects a job, it adds a build to the queue. The build downloads input artifacts (depending on the AWS CodePipeline TeamCity action settings), runs the configured build steps and, in case of a successful build, publishes output artifacts to the AWS S3 for the usage in the following CidePipeline subsequent CodePipeline stages.
See Building End-to-End Continuous Delivery and Deployment Pipelines in AWS and TeamCity for step-by-step instructions.
TeamCity Versions Compatibility
The plugin is compatible with TeamCity 9.1 and newer.
To use the plugin, you need to have a correctly pre-configured AWS resources including:
For more information on configuring a CodePipeline pipeline and the required resources, see CodePipeline documentation.
The currently supported credential credentials types are AWS account access keys (access key ID and secret access key) or temporary access keys received from AWS from the AWS security token service by assuming a role.
To identify an action when making requests to the CodePipeline, the plugin needs the
ActionID property. The value must be unique and match the corresponding field in the TeamCity Action settings in the CodePipeline, and satisfy the regular expression pattern:
[a-zA-Z0-9_-]+] and have length <= 20.
Action input and output artifacts
CodePipeline TeamCity Build and Test actions can have from 0 to 5 input and/or output artifacts.
If any input artifacts are configured for the corresponding CodePipeline TeamCity action, they are downloaded from the S3 to the temporary directory before the build starts. The folder is specified by the
codepipeline.artifact.input.folder configuration parameter which is by default
In the directory each input artifact can be found inside a
<pipeline name>/<artifact name> folderby artifact name, e.g. if TeamCity CodePipeline action is a part of a pipeline named
TestPipeline and , has an input artifact named
MyApp and the previous action has uploaded some
application-bundle-1.0.zip zip file for this artifact name - then during the corresponding TeamCity build, the artifact will be available as
Similarly, after the build finishes, the files found under the artifact output folder specified by the
codepipeline.artifact.output.folder configuration parameter (which is
%system.teamcity.build.tempDir%/CodePipeline/output by default) are uploaded to the S3. Each artifact must be placed in a
<pipeline name>/<artifact name> folderrepresented by an
<artifact_name>.zip archive, e.g. to publish some
application-bundle-2.0.zip some zip file as an artifact named
MyAppBuild for pipeline
TestPipeline, place it to
.zip. You can achieve this, for example, by adding a Command line build step to your build which runs
cp MyAppBuild.zip %codepipeline.artifact.output.folder%/
It's recommended by the AWS to use one of
zip, tar, tar.gz (tgz) archive types to package artifacts for the AWS CodePipeline.
Trigger poll interval
By default TeamCity build triggers are polled every 20 seconds. To change this period for the AWS CodePipeline Action build trigger you may , specify
codepipeline.poll.interval configuration parameter.
Public repository: https://github.com/JetBrains/teamcity-aws-codepipeline-plugin.
Original issue in the tracker.