From 4d00897dcddb4eb4d4e32182ffb6579c036dbd5c Mon Sep 17 00:00:00 2001 From: theJawnnybot Date: Fri, 6 Mar 2026 02:56:33 -0600 Subject: [PATCH] build: migrate to modern Kotlin DSL + Maven Central release flow --- .github/workflows/ci.yml | 26 +++++++-- .github/workflows/publish-release.yml | 33 +++++++++++ .jitpack.yml | 1 - README.md | 16 +----- app/build.gradle | 29 ---------- app/build.gradle.kts | 42 ++++++++++++++ app/src/main/AndroidManifest.xml | 5 +- build.gradle | 27 --------- build.gradle.kts | 9 +++ gradle.properties | 29 +++------- gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 0 modalbottomsheetdialogfragment/build.gradle | 30 ---------- .../build.gradle.kts | 55 +++++++++++++++++++ .../src/main/AndroidManifest.xml | 2 +- publish.gradle | 5 -- settings.gradle | 1 - settings.gradle.kts | 18 ++++++ 18 files changed, 192 insertions(+), 138 deletions(-) create mode 100644 .github/workflows/publish-release.yml delete mode 100644 .jitpack.yml delete mode 100644 app/build.gradle create mode 100644 app/build.gradle.kts delete mode 100644 build.gradle create mode 100644 build.gradle.kts mode change 100644 => 100755 gradlew delete mode 100644 modalbottomsheetdialogfragment/build.gradle create mode 100644 modalbottomsheetdialogfragment/build.gradle.kts delete mode 100644 publish.gradle delete mode 100644 settings.gradle create mode 100644 settings.gradle.kts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bd0ce05..ea7e0e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,26 @@ name: Build -on: [pull_request, push] + +on: + push: + pull_request: + jobs: build: runs-on: ubuntu-latest + steps: - - name: Checkout the code - uses: actions/checkout@v2 - - name: Build the app - run: chmod +x gradlew && ./gradlew build + - name: Checkout + uses: actions/checkout@v4 + + - name: Configure JDK + uses: actions/setup-java@v4 + with: + distribution: zulu + java-version: '17' + cache: gradle + + - name: Validate Gradle Wrapper + uses: gradle/actions/wrapper-validation@v4 + + - name: Build + run: ./gradlew build diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 0000000..aa6d490 --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,33 @@ +name: Publish Release + +on: + push: + tags: + - '*' + +env: + RELEASE_SIGNING_ENABLED: true + +jobs: + publish: + runs-on: ubuntu-latest + if: github.repository == 'Commit451/ModalBottomSheetDialogFragment' + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install JDK + uses: actions/setup-java@v4 + with: + distribution: zulu + java-version: '17' + cache: gradle + + - name: Release to Maven Central + run: ./gradlew publishAndReleaseToMavenCentral -PVERSION_NAME="${GITHUB_REF_NAME}" --no-configuration-cache + env: + ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_PRIVATE_KEY }} + ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }} diff --git a/.jitpack.yml b/.jitpack.yml deleted file mode 100644 index f78f664..0000000 --- a/.jitpack.yml +++ /dev/null @@ -1 +0,0 @@ -jdk: openjdk11 \ No newline at end of file diff --git a/README.md b/README.md index bcde8ae..360fcde 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,17 @@ # ModalBottomSheetDialogFragment Modal bottom sheet dialog based on the [Material Guidelines](https://material.io/components/sheets-bottom) -[![](https://jitpack.io/v/Commit451/ModalBottomSheetDialogFragment.svg)](https://jitpack.io/#Commit451/ModalBottomSheetDialogFragment) +[![Build](https://github.com/Commit451/ModalBottomSheetDialogFragment/actions/workflows/ci.yml/badge.svg)](https://github.com/Commit451/ModalBottomSheetDialogFragment/actions/workflows/ci.yml) [![Maven Central](https://img.shields.io/maven-central/v/com.commit451/modalbottomsheetdialogfragment.svg?label=Maven%20Central)](https://central.sonatype.com/artifact/com.commit451/modalbottomsheetdialogfragment) ## Dependency -Add this in your root `build.gradle` file (**not** your module `build.gradle` file): +Add the library to your project `build.gradle`: -```gradle -allprojects { - repositories { - ... - maven { url "https://jitpack.io" } - } -} -``` - -Then, add the library to your project `build.gradle` ```gradle dependencies { - implementation("com.github.Commit451:ModalBottomSheetDialogFragment:latest.version.here") + implementation("com.commit451:modalbottomsheetdialogfragment:latest.version.here") } ``` diff --git a/app/build.gradle b/app/build.gradle deleted file mode 100644 index ec29013..0000000 --- a/app/build.gradle +++ /dev/null @@ -1,29 +0,0 @@ -apply plugin: "com.android.application" -apply plugin: "kotlin-android" - -android { - compileSdkVersion 33 - defaultConfig { - applicationId "com.commit451.modalbottomsheetdialogfragment.sample" - minSdkVersion 21 - targetSdkVersion 33 - versionCode 1 - versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - } - buildFeatures { - viewBinding true - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } -} - -dependencies { - implementation("androidx.appcompat:appcompat:1.6.0") - - implementation(project(":modalbottomsheetdialogfragment")) -} diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..561bf9f --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,42 @@ +plugins { + id("com.android.application") +} + +android { + namespace = "com.commit451.modalbottomsheetdialogfragment.sample" + compileSdk = 35 + + defaultConfig { + applicationId = "com.commit451.modalbottomsheetdialogfragment.sample" + minSdk = 21 + targetSdk = 35 + versionCode = 1 + versionName = "1.0" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildFeatures { + viewBinding = true + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } +} + +dependencies { + implementation("androidx.appcompat:appcompat:1.7.1") + + implementation(project(":modalbottomsheetdialogfragment")) +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2423531..02c3b1e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + - \ No newline at end of file + diff --git a/build.gradle b/build.gradle deleted file mode 100644 index dca7d96..0000000 --- a/build.gradle +++ /dev/null @@ -1,27 +0,0 @@ -buildscript { - ext.kotlin_version = "1.8.0" - repositories { - google() - mavenCentral() - } - dependencies { - classpath "com.android.tools.build:gradle:7.4.1" - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "com.vanniktech:gradle-maven-publish-plugin:0.20.0" - } -} - -plugins { - id "com.github.ben-manes.versions" version "0.45.0" -} - -allprojects { - repositories { - google() - mavenCentral() - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..d709a4e --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,9 @@ +plugins { + id("com.android.application") version "9.1.0" apply false + id("com.android.library") version "9.1.0" apply false + id("com.vanniktech.maven.publish") version "0.30.0" apply false +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/gradle.properties b/gradle.properties index d9bdeee..502207d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,27 +1,11 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx1536m - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 android.useAndroidX=true -GROUP=com.commit451.modalbottomsheetdialogfragment +GROUP=com.commit451 POM_ARTIFACT_ID=modalbottomsheetdialogfragment -VERSION_NAME=1.0.0 +VERSION_NAME=1.3.1 -POM_NAME=Aloy +POM_NAME=ModalBottomSheetDialogFragment POM_DESCRIPTION=Modal bottom sheet dialog based on the Material Guidelines POM_INCEPTION_YEAR=2018 POM_URL=https://github.com/Commit451/ModalBottomSheetDialogFragment/ @@ -30,7 +14,7 @@ POM_LICENSE_NAME=The Apache Software License, Version 2.0 POM_LICENSE_URL=https://www.apache.org/licenses/LICENSE-2.0.txt POM_LICENSE_DIST=repo -POM_SCM_URL=https://github.com/Commit451/Aloy/ +POM_SCM_URL=https://github.com/Commit451/ModalBottomSheetDialogFragment/ POM_SCM_CONNECTION=scm:git:git://github.com/Commit451/ModalBottomSheetDialogFragment.git POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/Commit451/ModalBottomSheetDialogFragment.git @@ -38,4 +22,5 @@ POM_DEVELOPER_ID=Commit451 POM_DEVELOPER_NAME=Commit 451 POM_DEVELOPER_URL=https://github.com/Commit451/ -RELEASE_SIGNING_ENABLED=false +SONATYPE_CONNECT_TIMEOUT_SECONDS=60 +SONATYPE_CLOSE_TIMEOUT_SECONDS=900 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f42e62f..0c65c65 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/modalbottomsheetdialogfragment/build.gradle b/modalbottomsheetdialogfragment/build.gradle deleted file mode 100644 index 42448b0..0000000 --- a/modalbottomsheetdialogfragment/build.gradle +++ /dev/null @@ -1,30 +0,0 @@ -apply plugin: "com.android.library" -apply plugin: "kotlin-android" -apply from: "../publish.gradle" - -android { - compileSdkVersion 33 - - defaultConfig { - minSdkVersion 21 - targetSdkVersion 33 - versionCode 1 - versionName "1.0" - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } - -} - -dependencies { - api("androidx.activity:activity-ktx:1.6.1") - - api("androidx.recyclerview:recyclerview:1.2.1") - - api("com.google.android.material:material:1.8.0") -} diff --git a/modalbottomsheetdialogfragment/build.gradle.kts b/modalbottomsheetdialogfragment/build.gradle.kts new file mode 100644 index 0000000..3c6713d --- /dev/null +++ b/modalbottomsheetdialogfragment/build.gradle.kts @@ -0,0 +1,55 @@ +import com.vanniktech.maven.publish.AndroidSingleVariantLibrary +import com.vanniktech.maven.publish.SonatypeHost + +plugins { + id("com.android.library") + id("com.vanniktech.maven.publish") +} + +group = findProperty("GROUP") as String +version = findProperty("VERSION_NAME") as String + +android { + namespace = "com.commit451.modalbottomsheetdialogfragment" + compileSdk = 35 + + defaultConfig { + minSdk = 21 + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } +} + +dependencies { + api("androidx.activity:activity-ktx:1.10.1") + api("androidx.recyclerview:recyclerview:1.4.0") + api("com.google.android.material:material:1.13.0") +} + +mavenPublishing { + configure( + AndroidSingleVariantLibrary( + variant = "release", + sourcesJar = true, + publishJavadocJar = true, + ) + ) + coordinates("com.commit451", "modalbottomsheetdialogfragment", version.toString()) + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + if (System.getenv("RELEASE_SIGNING_ENABLED") == "true") { + signAllPublications() + } +} diff --git a/modalbottomsheetdialogfragment/src/main/AndroidManifest.xml b/modalbottomsheetdialogfragment/src/main/AndroidManifest.xml index 9fbb82f..cc947c5 100644 --- a/modalbottomsheetdialogfragment/src/main/AndroidManifest.xml +++ b/modalbottomsheetdialogfragment/src/main/AndroidManifest.xml @@ -1 +1 @@ - + diff --git a/publish.gradle b/publish.gradle deleted file mode 100644 index 4a2c1b9..0000000 --- a/publish.gradle +++ /dev/null @@ -1,5 +0,0 @@ -apply plugin: "com.vanniktech.maven.publish" - -mavenPublish { - androidVariantToPublish = "release" -} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index e682e0d..0000000 --- a/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app', ':modalbottomsheetdialogfragment' diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..4f836ef --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,18 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} + +rootProject.name = "ModalBottomSheetDialogFragment" +include(":app", ":modalbottomsheetdialogfragment")