Skip to content

refactor(publishing): adopt shared io.customer.android.publish plugin#738

Draft
mahmoud-elmorabea wants to merge 1 commit into
mainfrom
adopt-shared-publish-plugin
Draft

refactor(publishing): adopt shared io.customer.android.publish plugin#738
mahmoud-elmorabea wants to merge 1 commit into
mainfrom
adopt-shared-publish-plugin

Conversation

@mahmoud-elmorabea

Copy link
Copy Markdown
Contributor

Migrates Maven Central publishing off this repo's in-line Groovy scripts onto the shared io.customer.android.publish-* convention plugins from customerio/mobile-ci-tools#10, so customerio-android and jist share one publishing source of truth.

Changes

  • build.gradle: apply io.customer.android.publish-root (replaces the in-line gradle-nexus + dokka applies and apply from publish-root.gradle); swap the gradle-nexus + dokka buildscript classpaths for the shared android-publish plugin (which bundles them transitively).
  • 8 library modules (core, base, datapipelines, messaginginapp, messaginginapp-compose, messagingpush, location, tracking-migration): replace ext { PUBLISH_* } + apply from publish-module.gradle with apply plugin: 'io.customer.android.publish-module' + customerIoPublish { artifactId = … }.
  • buildSrc: add Dependencies.androidPublishPlugin / Versions.ANDROID_PUBLISH_PLUGIN.
  • settings.gradle: -PuseLocalPublishPlugin includeBuild dev override.
  • Delete scripts/publish-module.gradle and scripts/publish-root.gradle.

Net: +48 / −159 — the publishing logic now lives once, in the shared plugin.

Validated locally

Via the includeBuild override, the multi-module build configures and modules expose the release publication + Sonatype tasks (publishReleasePublicationToSonatypeRepository, …). deploy-code.sh task names are unchanged.

⚠️ Expected to fail in CI for now

Resolving io.customer.android:android-publish:0.1.0 will fail until the plugin is published to Maven Central (mobile-ci-tools#10). Up for review of the migration shape.

🤖 Generated with Claude Code

Migrate Maven Central publishing off the in-repo Groovy scripts onto the shared
io.customer.android.publish-* convention plugins from customerio/mobile-ci-tools, so this repo
and jist share one publishing source of truth.

- build.gradle: apply publish-root (replaces the in-line gradle-nexus + dokka applies and the
  apply-from publish-root.gradle); swap the nexus + dokka buildscript classpaths for the shared
  android-publish plugin (which bundles them transitively).
- 8 library modules: replace `ext { PUBLISH_* } + apply from publish-module.gradle` with
  `apply plugin: 'io.customer.android.publish-module'` + `customerIoPublish { artifactId = … }`.
- buildSrc: add Dependencies.androidPublishPlugin / Versions.ANDROID_PUBLISH_PLUGIN.
- settings.gradle: -PuseLocalPublishPlugin includeBuild dev override.
- Delete scripts/publish-module.gradle and scripts/publish-root.gradle.

Validated locally via the includeBuild override: the build configures and modules expose the
release publication + Sonatype tasks. NOTE: CI will fail until the plugin is published to Maven
Central (mobile-ci-tools).

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

Copy link
Copy Markdown

Sample app builds 📱

Below you will find the list of the latest versions of the sample apps. It's recommended to always download the latest builds of the sample apps to accurately test the pull request.


@github-actions

Copy link
Copy Markdown
  • java_layout: Build failed. See CI job logs to determine the issue and try re-building.

@github-actions

Copy link
Copy Markdown
  • kotlin_compose: Build failed. See CI job logs to determine the issue and try re-building.

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