Skip to content

TeamCity Documentation #556

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
259 changes: 259 additions & 0 deletions docs/media/diagrams/teamcity-server-architecture.drawio

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 29 additions & 0 deletions docs/modules/teamcity/examples/complete.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: TeamCity Example
description: TeamCity Deployment Example
---

# TeamCity Deployment Example

This example provisions [TeamCity](https://www.jetbrains.com/teamcity/) and several AWS resources, such as VPC and DNS resources, more details below.

## Variables

This example takes in one input variables:`root_domain_name`.

### `root_domain_name`

The `root_domain_name` is expected to correspond to an existing [AWS Route53 hosted zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-concepts.html#route-53-concepts-hosted-zone). This hosted zone is used for provisioning DNS records used for external and internal routing, and enables this example to create validated SSL certificates on your behalf.

If you do not have a domain yet you can [register one through Route53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html#domain-register-procedure-section).

If you already have a domain with a different domain registrar you can leverage Route53 for DNS services. [Please review the documentation for migrating to Route53 as your DNS provider.](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html)

If you own the domain: "example.com" this example will deploy TeamCity to "teamcity.example.com" - this can be modified from the `dns.tf` file.


## Deployment

This example provisions the TeamCity module into a new VPC with freshly deployed resources from the module. A TeamCity server is deployed using an Amazon Elastic Container Service (ECS) service. The server will have an attached Elastic File System (EFS), which acts as a shared, persistent data store. The module also deploys an Amazon Aurora Serverless V2 Postgresql Cluster.

To deploy this example please initialize the project with `terraform init`. Deployment is then as simple as `terraform apply`.
15 changes: 15 additions & 0 deletions docs/modules/teamcity/teamcity.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: TeamCity
description: TeamCity Terraform module for game development on AWS
---

# TeamCity Server

[Jump to Terraform docs](./terraform-docs.md){ .md-button .md-button--primary }

[TeamCity](https://www.jetbrains.com/teamcity/) is a user-friendly continuous integration (CI) server for developers and build engineers created by JetBrains. This module deploys a TeamCity server on [AWS Elastic Container Service](https://aws.amazon.com/ecs/).

The TeamCity server relies on shared file system for persistent storage of configuration, build results, and current operation files as well as a SQL database to store build history, user data, build results, and runtime data. This module provides these services by provisioning an [Amazon Elastic File System](https://aws.amazon.com/efs/) and an [Amazon Amazon Aurora Serverless V2](https://aws.amazon.com/rds/aurora/serverless/) cluster running the PostgreSQL engine.

## Deployment Architecture
![TeamCity Module Architecture](../../media/images/teamcity-server-architecture.png)
2 changes: 2 additions & 0 deletions docs/modules/teamcity/terraform-docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Terraform Module Docs
--8<-- "modules/teamcity/README.md"
4 changes: 4 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,10 @@ nav:
- Installation and Usage: modules/perforce/helix-swarm/helix-swarm.md
- Module Docs: modules/perforce/helix-swarm/terraform-docs.md
- Examples: modules/perforce/examples/complete.md
- TeamCity:
- Installation and Usage: modules/teamcity/teamcity.md
- Module Docs: modules/teamcity/terraform-docs.md
- Examples: modules/teamcity/examples/complete.md
- Unreal Engine:
- Unreal Engine Horde:
- Installation and Usage: modules/unreal/horde/unreal-engine-horde.md
Expand Down