All Projects → JetBrains → teamcity-s3-artifact-storage-plugin

JetBrains / teamcity-s3-artifact-storage-plugin

Licence: Apache-2.0 License
TeamCity plugin which allows replacing the TeamCity built-in artifacts storage with AWS S3

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to teamcity-s3-artifact-storage-plugin

teamcity-google-agent
TeamCity support for Google cloud build agents
Stars: ✭ 13 (-66.67%)
Mutual labels:  teamcity, teamcity-plugin
teamcity-deployer-plugin
Deployer plugin for TeamCity CI server
Stars: ✭ 37 (-5.13%)
Mutual labels:  teamcity, teamcity-plugin
TeamCityApp
TeamCity in your pocket (Android application)
Stars: ✭ 48 (+23.08%)
Mutual labels:  teamcity, teamcity-plugin
teamcity-rust-plugin
TeamCity Rust and Cargo plugin
Stars: ✭ 29 (-25.64%)
Mutual labels:  teamcity, teamcity-plugin
teamcity-symbol-server
TeamCity Symbol Server plugin
Stars: ✭ 16 (-58.97%)
Mutual labels:  teamcity, teamcity-plugin
tcWebHooks
WebHooks plugin for Teamcity. Supports many build states and payload formats.
Stars: ✭ 128 (+228.21%)
Mutual labels:  teamcity, teamcity-plugin
teamcity-azure-storage
TeamCity Azure artifacts storage support plugin
Stars: ✭ 14 (-64.1%)
Mutual labels:  teamcity, teamcity-plugin
teamcity-runas-plugin
The teamcity-runas plugin to run TeamCity build steps under a specified user account on Windows or Linux.
Stars: ✭ 20 (-48.72%)
Mutual labels:  teamcity, teamcity-plugin
teamcity-commit-hooks
Plugin for TeamCity simplifying installation of webhooks for repositories in GitHub and GitHub Enterprise.
Stars: ✭ 24 (-38.46%)
Mutual labels:  teamcity, teamcity-plugin
teamcity-vagrant
No description or website provided.
Stars: ✭ 23 (-41.03%)
Mutual labels:  teamcity
teamcity-settings
Example project using TeamCity's Versioned Settings and Kotlin DSL
Stars: ✭ 20 (-48.72%)
Mutual labels:  teamcity
awesome-storage
A curated list of storage open source tools. Backups, redundancy, sharing, distribution, encryption, etc.
Stars: ✭ 324 (+730.77%)
Mutual labels:  s3-storage
jest-teamcity
Jest Teamcity Reporter
Stars: ✭ 29 (-25.64%)
Mutual labels:  teamcity
ionic-image-upload
Ionic Plugin for Uploading Images to Amazon S3
Stars: ✭ 26 (-33.33%)
Mutual labels:  s3-storage
teamcity-docker-server
TeamCity server docker image sources
Stars: ✭ 70 (+79.49%)
Mutual labels:  teamcity
teamcity
dohq-teamcity is a Python package providing access to the JetBrains TeamCity server API.
Stars: ✭ 24 (-38.46%)
Mutual labels:  teamcity
react-native-appsync-s3
React Native app for image uploads to S3 and storing their records in Amazon DynamoDB using AWS Amplify and AppSync SDK
Stars: ✭ 18 (-53.85%)
Mutual labels:  s3-storage
article-dataset-builder
Open Access PDF harvester, metadata aggregator and full-text ingester
Stars: ✭ 13 (-66.67%)
Mutual labels:  s3-storage
swarmci
Swarm CI - Docker Swarm-based CI system or enhancement to existing systems.
Stars: ✭ 48 (+23.08%)
Mutual labels:  teamcity
teamcity-kubernetes-plugin
Run TeamCity cloud agents on Kubernetes cluster
Stars: ✭ 57 (+46.15%)
Mutual labels:  teamcity

TeamCity S3 Artifact Storage Plugin

official project License

This plugin allows replacing the TeamCity built-in artifacts storage with AWS S3. The artifacts storage can be changed at the project level. After changing the storage, new artifacts produced by the builds of this project will be published to the (specified) AWS S3 bucket. Besides publishing, the plugin also implements resolving of artifact dependencies and clean-up of build artifacts.

State

Baseline functionality finished. Feedback wanted.

Compatibility

The plugin is compatible with TeamCity 2017.1 and greater

Features

When installed and configured, the plugin:

  • allows uploading artifacts to Amazon S3
  • allows downloading and removing artifacts from Amazon S3
  • handles resolution of artifact dependencies
  • handles clean-up of artifacts
  • displays artifacts located in Amazon S3 in the TeamCity web UI.

Download

You can download the plugin and install it as an additional TeamCity plugin. The latest plugin builds:

Branch Status Download TeamCity
master Download 2019.2-SNAPSHOT
Jaipur-2018.1.x Download 2018.1.x
Indore-2017.2.x Download 2017.2.x
Indore-2017.1.x Download 2017.1.1+

Installing

See instructions in TeamCity documentation.

Configuring

The plugin adds the Artifacts Storage tab to the Project Settings page in the TeamCity Web UI. The tab lists the built-in TeamCity artifacts storage displayed by default and marked as active.

To configure Amazon S3 storage for TeamCity artifacts, perform the following:

  1. Select S3 Storage as the storage type.
  2. Provide an optional name for your storage.
  3. Select an AWS region.
  4. Provide your AWS Security Credentials.
  5. Specify an existing S3 bucket to store artifacts.
  6. Save your settings.
  7. The configured S3 storage will appear on the Artifacts storage page. Make it active using the corresponding link.

Now the artifacts of this project, its subprojects, and build configurations will be stored in the configured storage.

Permissions

The plugin requires to have the following S3 permissions:

  • build agent: ListBucket, PutObject
  • server: DeleteObject, ListAllMyBuckets, GetBucketLocation, GetObject

Note: When pre-signed URLs option is enabled you need to grant required build agent permissions to the TeamCity server machine.

Known issues

Bad Request (400) from S3 when downloading artifact from TeamCity in "ant get" task using basic http auth scheme (httpAuth prefix in URL)

Error message returned from AWS: Only one auth mechanism allowed; only the X-Amz-Algorithm query parameter, Signature query string parameter or the Authorization header should be specified

Workaround: use pure 'curl -L'

Build agents fails to fetch artifacts from S3

Failed to resolve artifact dependency X: Failed to download file 'X': Failed to download https://teamcity/X.tar]: Illegal status [403] while downloading https://s3.X.amazonaws.com/bucket/X?...: Forbidden (jetbrains.buildServer.artifacts.impl.SourcePathAwareResolvingFailedException)

This can occur if the build agent is not able to fetch the artifact from the presigned URL generated by TeamCity within the time limit which is default 60s.

This value can be modified by setting a internal TeamCity server property storage.s3.url.expiration.time.seconds.

Building

To build the plugin locally run the following command in the plugin root directory:

> gradle build

The plugin artifact will be produced in the following location s3-artifact-storage-server/build/distributions/s3-artifact-storage.zip and could be installed as an external TeamCity plugin.

Reporting issues

Please report issues to our YouTrack.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].