What's New
New Features
Support for plugin upload with hot reload has been added, allowing plugins to be activated without restarting the server. A --tag filter is now available for run list to narrow results by tag.
Bug Fixes
Several queue operations have been corrected, including canceling queued runs instead of deleting their history, moving builds to the top of the queue via the proper API route, and using the correct REST paths for build approval. Pool handling has been improved so that pool ID 0 is preserved correctly in JSON output and move requests, and wording for pool unlinking has been fixed. SSH key upload, agent enable/disable permissions, and stray-argument handling in ssh list have also been corrected.
Changelog
- 0a574d4: feat(run): add --tag filter to run list (#404) (Viktor (@tiulpin))
- ca5e30f: feat(server): support plugin upload with hot reload (#391) (Sergei Ugdyzhekov (@sugdyzhekov))
- 44e1936: fix(agent): drop the locator that incompatibleBuildTypes ignores (Viktor (@tiulpin))
- 0af59a5: fix(agent): remove exec test and improve error handling for terminal sessions (Viktor (@tiulpin))
- d057d43: fix(api): remove trailing slash from UploadSSHKey path (n123tw)
- 0461ff3: fix(auth): request correct permissions for agent enable/disable (Bogdan Mukvich (@Badya))
- 80d4c8b: fix(plugin): add missing space in plugin archive validation error message (Viktor (@tiulpin))
- 16f19b8: fix(plugin): simplify error messages by removing redundant string formatting (Viktor (@tiulpin))
- f0dd9bc: fix(pool): keep pool id 0 in JSON output and move-to-pool requests (Viktor (@tiulpin))
- 37164e2: fix(pool): say unlinked from a pool, not to it (Viktor (@tiulpin))
- d0c3bf9: fix(pool): send pool 0 in move requests without inventing it in filtered JSON (Viktor (@tiulpin))
- 42f4596: fix(project): reject stray args in ssh list instead of listing _Root (Viktor (@tiulpin))
- 6dc2126: fix(queue): cancel queued runs instead of deleting their history (Viktor (@tiulpin))
- e2d4e30: fix(queue): move to top via PUT order/first with the build in the body (Viktor (@tiulpin))
- 5f115d2: fix(queue): use POST /approve and GET /approvalInfo REST paths (Viktor (@tiulpin))
- ba54454: fix(run): drop the unused SinceID knob from build log requests (Viktor (@tiulpin))
- faaa459: fix(run): keep SinceID on the wire, correct its meaning in the doc (Viktor (@tiulpin))
- 40d620e: fix(run): pin via the documented pinInfo route (Viktor (@tiulpin))
- d8eff98: fix(test): unset XDG_CONFIG_HOME in tests (Bogdan Mukvich (@Badya))
- 2f95039: refactor(api): keep maxScan and SinceID as ignored, deprecated inputs (Viktor (@tiulpin))
Installation
macOS & Linux
Homebrew (recommended):
brew install jetbrains/utils/teamcityInstall script:
curl -fsSL https://jb.gg/tc/install | bashDebian/Ubuntu:
curl -fsSLO https://github.com/JetBrains/teamcity-cli/releases/download/v1.4.0/teamcity_linux_amd64.deb
sudo dpkg -i teamcity_linux_amd64.debRHEL/Fedora:
sudo rpm -i https://github.com/JetBrains/teamcity-cli/releases/download/v1.4.0/teamcity_linux_amd64.rpmArch Linux (AUR):
yay -S teamcity-binWindows
Winget (recommended):
winget install JetBrains.TeamCityCLIChocolatey:
choco install TeamCityCLIScoop:
scoop bucket add jetbrains https://github.com/JetBrains/scoop-utils
scoop install teamcityManual:
Download teamcity_1.4.0_windows_x86_64.zip, extract, and add to PATH.
npm
npm install -g @jetbrains/teamcity-cliGo Install
go install github.com/JetBrains/teamcity-cli/tc@v1.4.0Quick Start
# Authenticate with your TeamCity server
teamcity auth login
# List recent builds
teamcity run list
# Start a build
teamcity run start MyProject_Build --branch main --watchFull documentation — getting started, configuration, command reference, and more.