Skip to content

Repository files navigation

Android Build Publish Plugin

A modular Gradle plugin suite that automates Android build publishing workflows: Git-tag-based version management, changelog generation, and distribution/notification integrations (Firebase, Play Store, Slack, Telegram, Jira, Confluence, ClickUp, Nextcloud).

Upgrading? 2.0 contains breaking DSL changes — see the 2.0 migration guide. For the 2.0 → 2.1 changes (Jira multi-instance registry, changelog issue resolution) see the 2.1 migration guide.

Why this suite

Designed to be "build friendly" and behave well in CI/CD:

  • Lazy, configuration-avoidant — values are Property/Provider-backed and resolved late; tasks are registered without being realized unless needed.
  • Conditional tasks — integration tasks are created only when their configuration is present (e.g. jiraAutomation<V> only when an automation action is enabled).
  • No network at configuration time — network calls happen only during task execution, via the Gradle Worker API, backed by shared build services (one HTTP client per integration).
  • Variant-aware — tasks are wired per Android build variant with a predictable naming scheme.

More detail: Design & CI-friendliness.

Quick start

Apply the Foundation plugin (required — it drives tag/version/changelog wiring) plus any integrations you need:

// app/build.gradle.kts
plugins {
    id("com.android.application")
    id("ru.kode.android.build-publish-novo.foundation")
    id("ru.kode.android.build-publish-novo.telegram") // add integrations as needed
}

buildPublishFoundation {
    output { common { baseFileName.set("my-app") } }
    changelog {
        common {
            commitMessageKey.set("CHANGELOG")
            issueSource("tracker") {
                numberPattern.set("TICKET-\\d+")
                urlPrefix.set("https://jira.example.com/browse/")
            }
        }
    }
}

Then see Installation for repositories, version catalogs, and convention (build-logic) setup, and the plugin docs for per-integration configuration.

Documentation

Examples

The repository ships runnable references:

  • example-project/ — a complete Android app using the plugins across multiple build types and flavors. Try ./gradlew tasks, then ./gradlew assembleDebug / assembleRelease.
  • example-plugin/ — a minimal custom plugin that participates in variant configuration.
  • plugin-test/ — integration tests exercising every plugin; useful as practical, working configuration references.

Contributing

See CONTRIBUTING.md.

License

This project is licensed under the MIT License — see the LICENSE file for details.

About

Gradle plugin for Android that automates build publishing: consistent artifact naming + changelog/release notes generation, and variant-aware uploads to Firebase App Distribution, Confluence, Telegram, Slack and more

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages