Child pages
  • Jaipur 2018.1 (build 57985) EAP2 Release Notes

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

Table of Contents

See also Jaipur 2018.1 (build 57605) EAP1 Release Notes

...

TeamCity makes a step towards High Availability by introducing a read-only mode for a the server. It is currently possible to start a second, read-only TeamCity server looking at the same database and data directory as the main one. 

...

Starting Read-Only Node

A Read-Only node uses the same Data Directory and the same external database as the main TeamCity Server. Therefore, a prerequisite of using the Read-Only node is to ensure that it has access to the data directory and database of the main TeamCity Server.

In addition to the data directory shared with the main server, the Read-Only node requires a 'local' data directory where it stores some caches, unpacked external plugins and some other configuration. By default, the 'local' data directory is automatically created under the <Main Data Directory>/nodes/read_only_node path during the first start. You can override its location using -Dteamcity.node.data.path property in the TeamCity start-up scripts.

To start a Read-Only node alongside the main TeamCity Server, do the following:

    1. Install the TeamCity software as usual: download a distribution package, unpack it or follow the installation wizard.
    2. Configure the TEAMCITY_DATA_PATH environment variable on the Read-Only node, make sure it points to the shared data directory.
    3. Add additional arguments to the TEAMCITY_SERVER_OPTS environment variable: TEAMCITY_SERVER_OPTS=-Dteamcity.server.role=read-only-server

High-Availability Installation

Using a read-only node, it's possible to setup High-Availability TeamCity installation, that will have zero read downtime, i.e. when the main server is unavailable or is performing an upgrade, requests may be routed to the read-only node. Such setup requires installing both the main server and the read-only node behind a reverse proxy, that should be configured to proxy requests to the main server while it's available and to the read-only in other cases.

For example, the following NGINX configuration will route requests to the read-only node only when the main server is not available or when the main server responds with 500 or 503 status codescode, which generally means that it is starting or is performing an upgrade.  

Code Block
http {
    upstream backend {
        server teamcity-main.local:8111 max_fails=5 fail_timeout=30s; # full internal address of the main server;
        server teamcity-ro.local:8111 backup; # full internal address of the read-only node;
    }

    server {
        location / {
            proxy_pass          http://backend;
            proxy_next_upstream error timeout http_503 http_500;
         }
    }
} 

If you did not setup TeamCity server behind reverse proxy before, make sure to review our notes on this topic.

Limitations

  • Not all the pages in the Administration area are available in the read-only mode. For example, the Projects Import tab is not shown as it's not useful when the server can't perform write operations.

  • Currently, only bundled and a limited set of some other plugins are loaded by the read only server, so some functionality provided by external plugins can be missing.  

  • Currently, it's not possible to switch the read-only node to the write mode. So in case of the main server failure, a new main server should be started.

  • Users may need to re-login when they are routed to the read-only node if they didn't use Remember Me.

...

  • new build row presentation, featuring the artifacts icon, has been added to the overview and favorite builds pages
  • the build configuration home page has been redesigned (besides, internally it now uses the REST API to show its data)

...

Starting with this EAP, it is finally possible to enable a NuGet feed at the project level, which means each project can have its own NuGet feed. By default, TeamCity no longer adds all .nupkg artifacts to the project feed; instead, you can add "the NuGet packages indexer" build feature to build configurations whose artifacts should be indexed. If you prefer to have a single feed for the whole server, you can enable it at the Root project level and add  the packages indexer build feature to build configurations which produce relevant packages.

...

Note

Note that starting from this version the following NuGet-feed-related parameters are deprecated:

  • teamcity.nuget.feed.auth.server
  • teamcity.nuget.feed.server
  • system.teamcity.nuget.feed.auth.serverRootUrlBased.server

 

Docker Support

Note

Due to a error, Docker runner is disabled by default in this EAP build.

To enable it, please set internal property teamcity.docker.command.enabled=true

 

  • Docker wrapper now supports .NET CLI and PowerShell runners, which means you can easily run these steps in a Docker container.
  • Docker Build runner has been replaced with Docker Command runner with support for build, push and some other docker commands

...

  • Now it is possible to use parameter references in agent requirement settings 
  • Users can now hide health report items if they are not relevant for their project (previously only sysadmins could hide them) 
  • The bundled JetBrains .NET Tools have been updated to the latest released versions: dotCover 2018.1 and ReSharper CLT 2018.1 

  • The bundled Ant has been updated to version 1.9.11

  • The VSS (Visual SourceSafe) plugin has been un-bundled

  • All fixed issues