1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2026-05-04 11:03:08 +02:00
Commit Graph

42 Commits

Author SHA1 Message Date
Alex Plate
64eca1ca11 Fix missing dependencies and git staging rule in UI test analysis jobs
Added missing dependencies:
- Java 21 setup (required for compilation verification)
- FFmpeg installation (required for ffprobe video analysis)

Added critical git staging rule to all UI test workflows:
- NEVER use `git add -A` or `git add .` when creating fix branches
- Always add modified files explicitly by path
- This prevents accidentally staging unrelated files that could cause
  push failures due to GitHub App workflow permission restrictions

Affected workflows:
- runUiTestsIJ.yml (unified IntelliJ IDEA tests)
- runUiPyTests.yml (PyCharm macOS tests)
- runUiPyTestsLinux.yml (PyCharm Linux tests)
- runUiRdTests.yml (Rider macOS tests)
- runUiRdTestsLinux.yml (Rider Linux tests)
- runUiOctopusTests.yml (Non-Octopus tests)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-08 07:32:43 +02:00
Alex Plate
59696e1b75 Add UI test best practices to prompts: prefer cause-effect over timeouts 2026-01-07 23:24:36 +02:00
Alex Plate
d7d9774dca Add java and which commands to allowed tools in UI test workflows 2026-01-07 23:14:07 +02:00
Alex Plate
4944053e51 Add mandatory compilation and test verification to UI test workflows 2026-01-07 22:54:17 +02:00
Alex Plate
8be630ed68 Add full tool permissions for automated PR creation in UI tests
Added Edit, Bash(git:*), Bash(gh:*), Bash(gradle:*), and Bash(./gradlew:*)
to the allowed-tools list in all UI test workflows.

This enables Claude Code to fully automate the PR creation process:
- Edit: Modify source files to apply fixes
- Bash(git:*): Create branches, add files, commit, push
- Bash(gh:*): Create pull requests
- Bash(gradle:*) & Bash(./gradlew:*): Run tests to verify fixes

Without these permissions, Claude Code would get "command requires approval"
errors when trying to create branches or edit files, preventing automated
PR creation.

Updated workflows:
- runUiTests.yml (IntelliJ macOS)
- runUiTestsLinux.yml (IntelliJ Linux)
- runUiTestsUnified.yml (IntelliJ unified)
- runUiRdTests.yml (Rider macOS)
- runUiRdTestsLinux.yml (Rider Linux)
- runUiPyTests.yml (PyCharm macOS)
- runUiPyTestsLinux.yml (PyCharm Linux)
- runUiOctopusTests.yml (Octopus macOS)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 18:00:45 +02:00
Alex Plate
6f3fec2b1a Instruct Claude Code to create PRs automatically without asking
Added explicit instruction to all UI test failure analysis prompts:
"IMPORTANT: If you have a concrete suggestion for fixing the test,
ALWAYS proceed with creating a branch and PR. Never ask for
permission - just do it."

This ensures Claude Code will automatically create fix PRs when it
identifies concrete solutions, eliminating the need for user
confirmation and enabling fully automated test maintenance.

Updated workflows:
- runUiTests.yml (IntelliJ macOS)
- runUiTestsLinux.yml (IntelliJ Linux)
- runUiTestsUnified.yml (IntelliJ unified)
- runUiRdTests.yml (Rider macOS)
- runUiRdTestsLinux.yml (Rider Linux)
- runUiPyTests.yml (PyCharm macOS)
- runUiPyTestsLinux.yml (PyCharm Linux)
- runUiOctopusTests.yml (Octopus macOS)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 17:45:21 +02:00
Alex Plate
c6460ab515 Add macOS screen recording permission dialog automation to remaining workflows
Added the "Auto-click Allow button for screen recording permission" step
to all macOS UI test workflows that were missing it:
- runUiRdTests.yml (Rider macOS)
- runUiPyTests.yml (PyCharm macOS)
- runUiOctopusTests.yml (Octopus macOS)

This step automatically dismisses the macOS screen recording permission
dialog that appears when ffmpeg starts recording. Without this automation,
the dialog blocks the test execution and causes timeouts.

The step tries multiple coordinate positions using both cliclick and
AppleScript fallback to handle different screen resolutions and dialog
positions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 17:20:09 +02:00
Alex Plate
e73dff9d9a Add automated fix workflow to UI test failure analysis
Updated all UI test workflow prompts to instruct Claude Code to
automatically create fixes when concrete solutions are identified:

1. Create a branch with descriptive name
2. Apply the suggested fix to the codebase
3. Run the specific failing test to verify the fix works
4. Create a PR if the test passes with clear documentation

Each workflow includes the appropriate test command for its IDE type:
- IntelliJ/Octopus: gradle :tests:ui-ij-tests:testUi --tests "..."
- Rider: gradle :tests:ui-rd-tests:testUi --tests "..."
- PyCharm: gradle :tests:ui-py-tests:testUi --tests "..."

This enables fully automated test fix proposals without manual
intervention, reducing the feedback loop for fixing flaky or broken
UI tests caused by platform changes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 17:01:37 +02:00
Alex Plate
3f4da7ab8a Add macOS labels and create Linux variants for Rider/PyCharm UI tests
Clarified that existing UI tests without OS specification run on macOS
by updating workflow names to include "macOS" suffix.

Created Linux versions of Rider and PyCharm UI tests:
- runUiRdTestsLinux.yml: Rider tests on Linux with Xvfb setup
- runUiPyTestsLinux.yml: PyCharm tests on Linux with Xvfb and Python 3.10

Both new workflows follow the same Linux setup pattern as the existing
runUiTestsLinux.yml workflow, using x11grab for screen recording and
appropriate IDE type parameters (-PideaType=RD/PC).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 16:59:14 +02:00
Alex Plate
86c94cbac1 Add hierarchy file guidance to UI test failure analysis prompts
When UI tests fail due to timeouts but the element is visible in the
video/screenshot, the failure may be caused by renamed properties or
changed class names. The hierarchy HTML file contains the actual UI
structure and can help identify these issues.

Updated all UI test workflows (macOS, Linux, Windows, Rider, PyCharm,
and Octopus) to instruct Claude Code to check build/reports/hierarchy-ideaVimTest.html
and suggest updated queries when this scenario occurs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 16:22:59 +02:00
Alex Plate
32ab7d888b Add Bash(rm:*) to allowed tools for AI analysis in UI test workflows
Allows the AI to remove temporary files when creating thumbnail grids
from screen recordings for better video analysis.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 23:44:27 +02:00
Alex Plate
c3486a6b4e Remove --no-configuration-cache flag from UI test workflows
Removed --no-configuration-cache flag from all runIdeForUiTests commands
to enable Gradle configuration cache and improve build performance.

This works together with the gradle/actions/setup-gradle@v4 action
to provide optimal caching.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 11:41:55 +02:00
Alex Plate
41f6bd1782 Add Gradle caching to UI test workflows
Enabled gradle/actions/setup-gradle@v4 for all UI test workflows:
- runUiTests.yml
- runUiPyTests.yml
- runUiRdTests.yml
- runUiOctopusTests.yml

This action automatically caches:
- Gradle wrapper
- Dependencies
- Gradle build cache

This should significantly speed up the "Build Plugin" step on
subsequent runs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 11:37:16 +02:00
Alex Plate
77fbe1ae2b Replace Gradle video recorder with CI-level screen recording
Extended macOS CI screen recording to all UI test workflows:
- Added FFmpeg screen recording to PyCharm, Rider, and Octopus tests
- Removed Linux UI tests workflow (runUiTestsLinux.yml)

Removed video-recorder-junit5 library from codebase:
- Removed dependency from all UI test modules
- Removed video recorder system properties from Gradle configs
- Removed @Video annotations and imports from all test files
- Removed "Move video" steps from all workflows

Updated Claude AI analysis prompts:
- Changed from dual video sources to single CI recording
- Added helpful ffmpeg commands for video analysis:
  * Extract frames at specific times
  * Create thumbnail grids
  * Get video duration
  * Extract last N seconds

This simplifies the video recording setup by relying solely on
CI-level screen capture, which provides complete coverage of the
entire test run.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 11:21:46 +02:00
Alex Plate
49ebe672cb Remove --auto-approve-tools flag, keep just --allowed-tools 2026-01-05 23:48:52 +02:00
Alex Plate
4a613b5c83 Add missing bash commands and auto-approve Write for build/reports 2026-01-05 23:45:57 +02:00
Alex Plate
ba4913fb0a Add allowed tools to Claude Code AI analysis step 2026-01-05 23:39:54 +02:00
Alex Plate
70305d2f0e Add id-token permission to UI test workflows for Claude Code action 2026-01-05 23:06:21 +02:00
Alex Plate
ed0c292736 Add Claude Code AI analysis step to UI test workflows
When UI tests fail, Claude Code now automatically analyzes the failure by examining test reports, video recordings, and IDE logs. The analysis is saved to build/reports/ai-analysis/analysis.txt and included in uploaded artifacts.

Requires ANTHROPIC_API_KEY secret to be configured in GitHub repository settings.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 22:36:09 +02:00
Alex Plate
264ccd5119 Add Claude Code AI analysis step to UI test workflows
When UI tests fail, Claude Code now automatically analyzes the failure by examining test reports, video recordings, and IDE logs. The analysis is saved to build/reports/ai-analysis/analysis.txt and included in uploaded artifacts.

Requires ANTHROPIC_API_KEY secret to be configured in GitHub repository settings.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 19:23:38 +02:00
Alex Plate
dbf26846ee Update the platform to 2025.3
Also, replace all IC dependencies on IU dependencies. The IC is deprecated since the unified release: https://blog.jetbrains.com/platform/2025/11/intellij-platform-2025-3-what-plugin-developers-should-know/
2025-12-09 10:00:58 +02:00
Alex Plate
5b8469c276 Use pattern matching in CI tests 2025-03-12 10:52:51 +02:00
Alex Plate
ee1928c836 Upgrade java version to 21 2025-02-28 19:39:48 +02:00
Alex Plate
b3631b59ed Update the logs location 2025-02-28 18:15:29 +02:00
Alex Plate
91e6ed545e Use the correct output directory for UI tests 2025-01-20 09:19:11 +02:00
Alex Plate
870a0da2a2 Update UI tests without octopus handler 2024-07-29 13:41:24 +02:00
Alex Plate
fcf4b44443 Save the whole sandbox after the UI test 2024-07-19 09:35:39 +03:00
Alex Plate
907e44b1d7 Change the gradle task for the UI tests 2024-07-19 09:05:11 +03:00
Matt Ellis
4913b13a2d Migrate to IntelliJ Platform Gradle Plugin 2.0
Also updates the GitHub workflows to use the new name for the testIdeUi task, and the TeamCity files to use the new name for the VerifyPlugin task
2024-06-17 11:03:17 +01:00
Alex Plate
eeb5939e59 Use brew to install ffmpeg on GitHub actions
After GitHub updated macos from version 12 to version 14, the existing action stopped working
2024-04-26 17:37:21 +03:00
Alex Plate
247aaed188 Use the property to change the state of the octopus handler 2024-02-23 15:32:35 +02:00
Alex Plate
9701b7e79b Add test reports to artifacts 2024-02-20 15:10:15 +02:00
Alex Plate
4c7a6165ed Fix incorrect logs location in UI tests 2024-02-13 19:26:58 +02:00
Alex Plate
58d308c1ed Fix the logging reporting for UI tests 2024-02-13 18:02:55 +02:00
Alex Plate
a119ea6a29 Fix octopus UI test 2024-02-13 12:34:56 +02:00
Alex Plate
95ef5f5f32 Fix incorrect configuration for UI tests 2024-02-13 08:43:12 +02:00
Alex Plate
2483450a1f Rename ui tests for better consistency 2024-02-09 16:11:14 +02:00
Alex Plate
8c6f81aa00 Fix incorrect location of the video 2024-02-08 16:46:03 +02:00
Alex Plate
a24ae616df Fix the creation of the video for the UI tests 2024-02-08 15:10:36 +02:00
Alex Plate
27a689e7b8 Extract UI tests into the separate module 2024-02-08 14:21:09 +02:00
Alex Plate
b0a1b2edba Do not make cd in tests 2024-01-26 15:47:13 +02:00
Alex Plate
355c560ddc Add UI test with disabled octopus handler 2024-01-26 15:32:30 +02:00