Skip to content

Conversation

@e5l
Copy link
Owner

@e5l e5l commented Oct 30, 2025

This pull request updates the CI workflow configuration for the repository, focusing on the test and analysis pipelines. The main changes include renaming and restructuring the Maven workflow to emphasize Kotlin PR tests, splitting the build and analysis steps for better clarity and reliability, and removing the AI-based presubmit review workflow.

Workflow improvements:

  • Renamed the workflow from Java PR Builder to Kotlin PR Tests in .github/workflows/maven-pr-builder.yml to better reflect its purpose.
  • Split the previous build-and-analyze job into two separate jobs: test (for running tests with Maven and JDK 21, including screen access via xvfb) and sonar-analysis (for SonarQube analysis, dependent on test completion), improving job clarity and reliability.

Presubmit pipeline removal:

  • Removed the .github/workflows/presubmit.yml workflow, which previously ran the AI reviewer (presubmit/ai-reviewer@latest) for pull requests and review comments, eliminating automated AI-based code review from the CI process.

Split the PR test workflow into two jobs for better performance:
- Fast test job that runs all tests and provides quick feedback
- SonarQube analysis job that runs after tests pass

Updated workflow name to reflect Kotlin project.

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

Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@e5l e5l changed the title Claude/configure GitHub action 011 c ud8 y yo d7fm ag utwj ph lv Claude/configure GitHub action Oct 30, 2025
After converting App.kt to use a top-level main() function,
the test was still calling App.main(emptyArray()) which doesn't
exist. Updated to call the top-level main() function directly.

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

Co-Authored-By: Claude <noreply@anthropic.com>
The pom.xml was configured with Kotlin 2.2.0, but the correct
latest stable version is 2.2.21. This was causing build failures
as Maven couldn't properly resolve the dependencies.

Updated kotlin.version from 2.2.0 to 2.2.21.

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

Co-Authored-By: Claude <noreply@anthropic.com>
Fixed NullPointerException, UnfinishedVerificationException, and
InvalidUseOfMatchersException in SergeantTest, CommanderTest, and
SoldierTest.

The issue was using Mockito's eq() matcher in Kotlin. In Kotlin,
eq() returns null (to signal "use this matcher"), but Kotlin's
null safety doesn't allow passing null to non-nullable parameters.

Solution: Remove the eq() matcher and pass the unit object directly
to verify(), since we have the actual instance:
- Before: Mockito.verify(mockedVisitor).visit(eq(unit))
- After: Mockito.verify(mockedVisitor).visit(unit)

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

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants