Skip to content

ci: Maven/java release-please flow + split Gradle from Docker publish#131

Merged
TheMeinerLP merged 1 commit into
mainfrom
feat/split-gradle-docker
Jun 21, 2026
Merged

ci: Maven/java release-please flow + split Gradle from Docker publish#131
TheMeinerLP merged 1 commit into
mainfrom
feat/split-gradle-docker

Conversation

@TheMeinerLP

@TheMeinerLP TheMeinerLP commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Brings Otis in line with Vulpes-Backend's release pipeline.

1. Pure Docker build (split Gradle from docker-publish)

docker-publish.yml becomes toolchain-agnostic (OneLiteFeatherNET/workflows#15). The Gradle step that generates the Micronaut optimized context moves into the new reusable gradle-docker-context.yml producer, which uploads the context as an artifact for docker-publish to consume.

  • publish and Docker jobs bump to @v2.3.0.
  • New build-context job runs ./gradlew jar optimizedBuildLayers optimizedDockerfile and uploads backend/build/docker/optimized as an artifact.
  • docker drops setup-java/build-command; consumes the artifact via artifact-name.

2. Maven (java) release-please flow + snapshots

Switch the package to release-type: java so release-please manages the Maven SNAPSHOT lifecycle (release → bump to next -SNAPSHOT), with gradle.properties updated via the generic updater — exactly like Vulpes-Backend.

Add the snapshot CI that flow implies:

  • version job reads gradle.properties on non-release pushes.
  • publish-snapshot publishes to the snapshot Maven repo (java-client / velocity-plugin already route SNAPSHOT/BETA/ALPHA there).
  • build-context-snapshot + docker-snapshot build & push a snapshot image on every non-release push.

After merge, expect release-please to open a …-SNAPSHOT bump PR (same dance Vulpes went through). gradle.properties is intentionally left at 1.14.0 — release-please drives it from here.

⚠️ Merge order

Depends on OneLiteFeatherNET/workflows#15 merged + released as v2.3.0 first (the @v2.3.0 refs won't resolve until then).

🤖 Generated with Claude Code

docker-publish.yml is now a pure, toolchain-agnostic Docker build. Move
the Gradle step that generates the Micronaut optimized context into the
new reusable gradle-docker-context.yml producer, which uploads the
context as an artifact for docker-publish to consume.

The release flow now runs:
  build-context (Gradle) -> docker (docker-publish via artifact-name)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Test results

 6 files   6 suites   0s ⏱️
 5 tests  4 ✅ 1 💤 0 ❌
15 runs  12 ✅ 3 💤 0 ❌

Results for commit fa690e3.

@TheMeinerLP TheMeinerLP merged commit b181ab1 into main Jun 21, 2026
8 checks passed
@TheMeinerLP TheMeinerLP changed the title ci: split Gradle context build from Docker publish ci: Maven/java release-please flow + split Gradle from Docker publish Jun 21, 2026
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.

1 participant