Conversation
- 3.1 Add automated tests (JUnit/Gradle) for helpers like `FileUtils.baseName`/`getResourceUrl` and content-type detection using existing `src/test/resources` assets; add headless checks for table/clipboard adapters where feasible. - 3.2. Set up CI (e.g., GitHub Actions) to run `./gradlew build` and `./gradlew dependencyUpdates` across modules to catch regressions and dependency drift. - 3.3. Increase Gradle JVM memory: add `org.gradle.jvmargs=-Xmx1g -XX:MaxMetaspaceSize=512m` to `gradle.properties` to avoid metaspace warnings during builds. - 3.4. Extract duplicated fatJar task logic to a shared Gradle convention plugin instead of repeating in each module. - 3.5. Flesh out `release.sh` to automate version bumps, changelog generation, and GitHub releases.
There was a problem hiding this comment.
Pull request overview
This PR establishes comprehensive build automation and CI/CD infrastructure for the GuiInteraction project. It introduces GitHub Actions for continuous integration, refactors duplicated fatJar build logic into a reusable Gradle convention plugin, and provides an automated release script with version management and changelog generation capabilities.
Key Changes:
- Added GitHub Actions CI workflow for automated builds, tests, and dependency checks
- Extracted fatJar task logic into a shared Gradle convention plugin to eliminate code duplication across modules
- Created a comprehensive release script supporting version bumping, dry-run mode, and automated publishing
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/ci.yml |
New CI workflow for automated builds, tests, and dependency updates |
release.sh |
Comprehensive release automation script with version bumping and changelog generation |
gradle.properties |
Increased JVM memory settings to prevent metaspace warnings |
buildSrc/build.gradle |
Enables Gradle convention plugin infrastructure |
buildSrc/src/main/groovy/se.alipsa.gi.fatjar-conventions.gradle |
Shared convention plugin for fatJar task creation |
gi-console/build.gradle |
Migrated to use fatJar convention plugin, removed duplicate code |
gi-fx/build.gradle |
Migrated to use fatJar convention plugin, removed duplicate code |
gi-swing/build.gradle |
Migrated to use fatJar convention plugin, removed duplicate code |
TODO.md |
Marked build and CI automation tasks as completed |
AGENTS.md |
Updated testing and implementation guidelines |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@perNyfelt I've opened a new pull request, #5, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: perNyfelt <13261538+perNyfelt@users.noreply.github.com>
|
@perNyfelt I've opened a new pull request, #6, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Consolidate duplicate test execution instructions in AGENTS.md
This pull request introduces significant improvements to the build, release, and CI processes for the project. The main changes include adding a GitHub Actions CI workflow, extracting the fatJar logic into a reusable Gradle convention plugin, increasing Gradle JVM memory to avoid build warnings, and providing a comprehensive release script that automates versioning, changelog generation, and publishing. Documentation and TODOs have also been updated to reflect these enhancements.
Build and CI Improvements:
.github/workflows/ci.ymlGitHub Actions workflow to automate builds, tests, and dependency checks for pushes and pull requests. This ensures continuous integration and helps catch regressions and dependency drift early.gradle.propertiesto prevent metaspace warnings during builds.Build Logic Refactoring:
buildSrc/src/main/groovy/se.alipsa.gi.fatjar-conventions.gradle), and applied it to thegi-console,gi-fx, andgi-swingmodules. This removes duplicated code and ensures consistency across modules. [1] [2] [3] [4]build.gradlefiles to use the newfatJartask from the convention plugin and cleaned up old, redundant fatJar definitions. [1] [2] [3] [4]Release Automation:
release.shwith a comprehensive script that supports version bumping, changelog generation, dry-run mode, and publishing all modules. The script guides the user through the release process and standardizes releases.Documentation Updates:
AGENTS.mdto clarify testing and implementation guidelines, emphasizing the importance of running tests and completing documentation for each task.TODO.mdto mark build, CI, and release automation tasks as completed.buildSrc/build.gradleto enable the convention plugin infrastructure.