Skip to content

Build platform#4

Merged
perNyfelt merged 15 commits intomainfrom
build_platform
Dec 16, 2025
Merged

Build platform#4
perNyfelt merged 15 commits intomainfrom
build_platform

Conversation

@perNyfelt
Copy link
Member

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:

  • Added a .github/workflows/ci.yml GitHub 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.
  • Increased Gradle JVM memory settings in gradle.properties to prevent metaspace warnings during builds.

Build Logic Refactoring:

  • Extracted the fatJar task logic into a shared Gradle convention plugin (buildSrc/src/main/groovy/se.alipsa.gi.fatjar-conventions.gradle), and applied it to the gi-console, gi-fx, and gi-swing modules. This removes duplicated code and ensures consistency across modules. [1] [2] [3] [4]
  • Updated module build.gradle files to use the new fatJar task from the convention plugin and cleaned up old, redundant fatJar definitions. [1] [2] [3] [4]

Release Automation:

  • Replaced the old release.sh with 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:

  • Updated AGENTS.md to clarify testing and implementation guidelines, emphasizing the importance of running tests and completing documentation for each task.
  • Updated TODO.md to mark build, CI, and release automation tasks as completed.
  • Added buildSrc/build.gradle to enable the convention plugin infrastructure.

per added 3 commits December 16, 2025 22:22
- 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.
Copilot AI review requested due to automatic review settings December 16, 2025 21:43
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

perNyfelt and others added 2 commits December 16, 2025 22:57
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link
Contributor

Copilot AI commented Dec 16, 2025

@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.

perNyfelt and others added 5 commits December 16, 2025 22:57
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>
Copy link
Contributor

Copilot AI commented Dec 16, 2025

@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.

@perNyfelt perNyfelt merged commit 38abc9c into main Dec 16, 2025
2 checks passed
@perNyfelt perNyfelt deleted the build_platform branch December 16, 2025 22:09
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