General Info
Author | Victory Petrenko / JetBrains |
License | |
Type | free, open-source |
Status | Beta |
Download
Latest nightly build on the public TeamCity server.
Plugin Description
The plugin makes a TeamCity build a part of an AWS CodePipeline stage by providing a custom job worker for theTeamCity 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 stages.
TeamCity Versions Compatibility
The plugin is compatible with TeamCity 9.1 and newer.
Installation instructions
Download aws-pipeline-plugin.zip and install the plugin on the TeamCity server.
Prerequisites
To use the plugin, you need to have a correctly pre-configured AWS resources including:
- An IAM user or a role with sufficient permissions for TeamCity to access AWS services
- A CodePipeline pipeline.
For more information on configuring a CodePipeline pipeline and required resources, see CodePipeline documentation.
You may be charged money for using the above-mentioned resources.
Security settings
The currently supported credential types are AWS account access keys (access key ID and secret access key) or temporary access keys received from AWS security token service by assuming a role.
Both types are supported by the AWS CodePipeline Action build trigger via the default credential provider chain.
ActionID property
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, satisfy regular expression pattern: [a-zA-Z0-9_-]+]
and have length <= 20.
Action input and output artifacts
CodePipeline TeamCity Build and Test actions can have 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 %system.teamcity.build.tempDir%/CodePipeline/input
.
In the directory each input artifact can be found inside a <pipeline name>/<artifact name>
folder, 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
for this artifact name - then during the corresponding TeamCity build the artifact will be available as %codepipeline.artifact.input.folder%/TestPipeline/MyApp/<random name>.zip
.
Similarly, after the build finishes, 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>
folder, e.g. to publish some application-bundle-2.0.zip
as an artifact named MyAppBuild
for pipeline TestPipeline
, place it to %codepipeline.artifact.output.folder%/TestPipeline/MyAppBuild/application-bundle-2.0.zip.
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.
Development links
Public repository: https://github.com/JetBrains/teamcity-aws-codepipeline-plugin.
Feedback
The plugin is in active development. Everybody is encouraged to try the plugin and provide feedback in the forum or post bugs into the issue tracker.
Related Links
Original issue in the tracker.