Add gg.ninetyfive, com.github.pooryam92.vimcoach, lazyideavim.whichkeylazy,
and com.github.vimkeysuggest to known plugins list and TeamCity compatibility job.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The clean task was invalidating the Gradle cache on each build,
making the caching feature ineffective.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The relative paths .gradle/caches and .gradle/wrapper don't exist in the
checkout directory - Gradle stores caches in ~/.gradle/ by default.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add --build-cache and --configuration-cache flags to all gradle steps
in ReleaseDev and ReleaseEap builds to match other build configurations.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds clearConditions() call to gradle build steps in LongRunning, Nvim,
PluginVerifier, and RandomOrderTests for consistency with PropertyBased
and TestingBuildType configurations.
The clearConditions() call was previously added to PropertyBased
(deca256e1) and TestingBuildType (152066b73) via TeamCity patches.
This change applies the same pattern to other gradle-based build types
to ensure consistent behavior across all test configurations.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Adds missing description fields to PropertyBased and LongRunning build
configurations for consistency with other build types (RandomOrderTests,
Nvim, TypeScriptTest, etc.).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add a simple TypeScript test script and TeamCity configuration to verify
that TS scripts can run on TeamCity agents. The build downloads Node.js
20.18.1 and runs the test script.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace TeamCity PR checks with a GitHub Actions workflow that:
- Runs on pull requests targeting master
- Executes the same test command with identical environment variables
- Uses Amazon Corretto JDK 21 (matching TeamCity setup)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove SlackNotificationTest build configuration
- Remove Slack notification steps from ReleaseEap and ReleasePlugin
- Remove ANTHROPIC_API_KEY parameter from release jobs
- Keep slackUrl parameter for future use
- Re-enable VCS triggers on all test configurations
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Temporarily disable VCS triggers to save TeamCity credits:
- GitHub PR checks
- TestingBuildType (all test configs)
- PropertyBased, RandomOrderTests, PluginVerifier, Nvim
Add SlackNotificationTest build to test changelog generation
and Slack notification flow separately.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix ReleaseEap to use env.ORG_GRADLE_PROJECT_youtrackToken pattern
(matching ReleasePlugin) instead of env.YOUTRACK_TOKEN
- Remove YouTrack test configuration (no longer needed)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use ORG_GRADLE_PROJECT_youtrackToken env var which Gradle
automatically converts to the youtrackToken project property.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add new TeamCity build type to test YouTrack API connection
- Create testYoutrackConnection gradle task
- Update YouTrack token in ReleaseEap (apply UI patch)
- Fail immediately if YOUTRACK_TOKEN is not set
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move the agent CPU and OS requirements from the abstract IdeaVimBuildType
class to each build type individually. This allows per-build-type control
over agent size (MEDIUM vs XLARGE).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add AgentSize constants for CPU count configuration and change
default agent requirement from 16 CPUs (XLarge) to 4 CPUs (Medium).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds Claude Code CLI integration to send Slack notifications after EAP
releases. Uses the same approach as the main release build, with an
EAP-specific prompt that includes unreleased changelog entries.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove SlackNotificationTest build config and patch
- Remove unused Kotlin slackNotification code and gradle tasks
- Add ANTHROPIC_API_KEY credential to release builds
- Update prompt for calm, professional internal team tone
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Instead of using Kotlin code to orchestrate Claude Code calls,
call Claude Code directly from TeamCity with a comprehensive prompt
that handles:
- Reading CHANGES.md
- Generating Slack message JSON
- Sending to webhook (with retry on error)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace markdown-to-slack library with Claude Code CLI for generating
Slack messages. This simplifies the code and adds retry logic where
Claude analyzes Slack errors and fixes the message format.
Changes:
- Add callClaudeCode() to shell out to `claude --print`
- Add sendToSlackWithRetry() with 3 retry attempts
- Add dry-run mode (4th argument) for testing
- Add slackNotificationTest gradle task
- Add TeamCity build config for testing
- Remove mark-down-to-slack dependency
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Because of some changes, if we define the test using `testIde` registering, they're not executed properly and don't work.
Now, we don't exclude these tests from the main test execution, so they have to be excluded explicitly