import Ġcom . ad ar shr . gradle . test logger . theme . Theme Type . STANDARD Ċ Ċ // ĠCould Ġalso Ġhave Ġused Ġ${ root Project . extra [" kotlin Version "]} Ċ val Ġkotlin Version : ĠString Ġby Ġroot Project . extra Ċ val Ġj aco co Version : ĠString Ġby Ġroot Project . extra Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" com . android . library ") ĊĠĠĠ Ġid (" kotlin - android ") ĊĠĠĠ Ġid (" org . jetbrains . dok ka ") Ġversion Ġ" 1 . 4 . 3 2 " ĊĠĠĠ Ġid (" jac oco ") ĊĠĠĠ Ġid (" maven - publish ") ĊĠĠĠ Ġ// ĠTo Ġgenerate Ġsignature Ġand Ġchecksum Ġfiles Ġfor Ġeach Ġartifact ĊĠĠĠ Ġid (" signing ") ĊĠĠĠ Ġ// ĠTo Ġprint Ġbeautiful Ġlogs Ġon Ġthe Ġconsole Ġwhile Ġrunning Ġtests Ġwith ĠGradle ĊĠĠĠ Ġ// ĠDoes n 't Ġwork Ġfor ĠAndroid Ġinstrument ed Ġtests ĊĠĠĠ Ġid (" com . ad ar shr . test - logger ") Ġversion Ġ" 3 . 0 . 0 " Ċ } Ċ Ċ group Ġ= Ġ" ir . ma hoz ad . android " Ċ version Ġ= Ġ" 0 . 7 . 0 " Ċ val Ġgithub ProjectName Ġ= Ġ" android - pie - chart " Ċ Ċ android Ġ{ ĊĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠ Ġget (" main "). java . src Dirs (" src / main / kotlin ") ĊĠĠĠĠĠĠĠ Ġget (" debug "). java . src Dirs (" src / debug / kotlin ") ĊĠĠĠĠĠĠĠ Ġget (" release "). java . src Dirs (" src / release / kotlin ") ĊĠĠĠĠĠĠĠ Ġget (" test "). java . src Dirs (" src / test / kotlin ") ĊĠĠĠĠĠĠĠ Ġget (" android Test "). java . src Dirs (" src / android Test / kotlin ") ĊĠĠĠĠĠĠĠ Ġget (" debug "). assets . src Dirs (" src / android Test / assets ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠSince Ġwe Ġare Ġsaving Ġour Ġscreenshot Ġtests Ġon Ġan Ġexternal Ġstorage , Ġwe Ġneed Ġto Ġmake Ġsure Ġthat ĊĠĠĠ Ġ// Ġwe Ġhave Ġ* WRITE _ EXTERNAL _ STORAGE * Ġpermission Ġadded Ġin Ġthe Ġmanifest . ĊĠĠĠ Ġ// ĠWhen Ġrunning Ġon ĠMar shm allow +, Ġwe Ġalso Ġneed Ġto Ġhave Ġthose Ġpermissions Ġgranted Ġbefore Ġrunning Ġa Ġtest . ĊĠĠĠ Ġ// Ġ- g Ġis Ġfor Ġgrant ing Ġpermissions Ġwhen Ġinstalling Ġthe Ġapp Ġ( works Ġon ĠMar shm allow + Ġonly ) Ġwhile Ġ- r Ġis Ġto Ġallow Ġre installing Ġof Ġthe Ġapp . ĊĠĠĠ Ġ// ĠThese Ġcorrespond Ġto Ġ` adb Ġshell Ġpm Ġinstall ` Ġoptions . ĊĠĠĠ Ġ// ĠJust Ġbe Ġaware Ġthat Ġthis Ġdoes Ġnot Ġwork Ġwith ĠAndroid ĠStudio Ġyet . ĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠSee Ġhttps :// medium . com / step stone - tech / how - to - capture - screenshots - for - failed - ui - tests - 9 9 2 7 eea 6 e 1 e 4 ĊĠĠĠ Ġa db Options Ġ{ ĊĠĠĠĠĠĠĠ Ġinstall Options ("- g ", Ġ"- r ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpackaging Options Ġ{ ĊĠĠĠĠĠĠĠ Ġexclude (" META - INF / LICENSE * ") ĊĠĠĠĠĠĠĠ Ġexclude (" META - INF /*. kotlin _ module ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Options Ġ{ ĊĠĠĠĠĠĠĠ Ġunit Tests . is Include Android Resources Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlint Options Ġ{ ĊĠĠĠĠĠĠĠ Ġis Check Release Build s Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġis Abort OnError Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompile Sdk Version ( 3 0 ) ĊĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġmin Sdk Version ( 2 1 ) ĊĠĠĠĠĠĠĠ Ġtarget Sdk Version ( 3 0 ) ĊĠĠĠĠĠĠĠ Ġversion Code Ġ= Ġ 9 ĊĠĠĠĠĠĠĠ Ġversion Name Ġ= Ġproject . version . toString () ĊĠĠĠĠĠĠĠ Ġtest Instrumentation Runner Ġ= Ġ" android x . test . runner . Android JUnit Runner " ĊĠĠĠĠĠĠĠ Ġtest Instrumentation Runner Argument (" runner Builder ", Ġ" de . mann oder ma us . junit 5 . Android JUnit 5 Builder ") ĊĠĠĠĠĠĠĠ Ġconsumer Pro guard Files (" consumer - rules . pro ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuild Types Ġ{ ĊĠĠĠĠĠĠĠ Ġget ByName (" debug ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Test Coverage Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Use Pro guard Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠRefer Ġto Ġ* Screenshot Test * Ġclass Ġdocument ations Ġfor Ġmore Ġinformation . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠNOTE : ĠAll ĠGitHub Ġactions Ġhave Ġthe Ġenvironment Ġvariable Ġ" CI " Ġ= Ġ" true ". ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis CI Ġ= ĠSystem . getenv (" CI ") ?. to Boolean () Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Config Field (" Boolean ", Ġ" CI ", Ġ"$ is CI ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġbuild Config Field (" String ", Ġ" NAME ", Ġ""" " value """ ") Ġ// ĠString Ġexample ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget ByName (" release ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Test Coverage Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThere Ġis Ġno Ġneed Ġto Ġob fusc ate Ġan Ġopen Ġsource Ġlibrary ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnor Ġis Ġit Ġnecessary Ġto Ġshrink Ġthe Ġcode Ġbecause Ġthe Ġuser Ġcan Ġdo Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠNOTE : ĠTo Ġremove ĠLog Ġstatements Ġin Ġthe Ġapplication Ġrelease , ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ Ġuse Ġthe Ġ* pro guard - android - optimize . txt * Ġversion . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ ĠSee Ġ[ here ]( https :// stackoverflow . com / q / 3 3 0 6 7 1 4 2 ) Ġand ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠĠĠĠĠ Ġ[ here ]( https :// stackoverflow . com / q / 2 4 4 6 2 4 8 /) Ġfor Ġmore Ġinformation ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard Files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault Pro guard File (" pro guard - android - optimize . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pro guard - rules . pro " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġ} ĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġj vm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġ} Ċ } Ċ Ċ jac oco Ġ{ ĊĠĠĠ Ġtool Version Ġ= Ġj aco co Version Ċ } Ċ Ċ apply ( from Ġ= Ġ"${ root Project . project Dir }/ scripts / configure - jac oco . gradle . k ts ") Ċ Ċ /* Ċ Ġ* ĠConfigure Ġthe Ġ[ test - logger Ġplugin ]( https :// github . com / radar sh / gradle - test - logger - plugin ). Ċ Ġ* ĠAlso Ġsee Ġ[ this ]( https :// stackoverflow . com / q / 3 9 6 3 7 0 8 /) Ċ Ġ* Ġand Ġ[ this ]( https :// stackoverflow . com / a / 3 1 7 7 4 2 5 4 /) Ċ Ġ*/ Ċ test logger Ġ{ ĊĠĠĠ Ġtheme Ġ= ĠST AND ARD ĊĠĠĠ Ġslow Threshold Ġ= Ġ 5 0 0 0 Ġ/* Ġms Ġ*/ ĊĠĠĠ Ġshow Simple Names Ġ= Ġtrue Ċ } Ċ Ċ tasks . with Type ( Test :: class ) Ġ{ ĊĠĠĠ Ġ// ĠSpecifies Ġwhether Ġfailing Ġtests Ġshould Ġfail Ġthe Ġbuild ĊĠĠĠ Ġignore Failures Ġ= Ġfalse ĊĊĠĠĠ Ġuse JUnit Platform Ġ{ ĊĠĠĠĠĠĠĠ Ġexclude En gin es (" junit - vint age ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġconfigure < J aco co Task Extension > Ġ{ ĊĠĠĠĠĠĠĠ Ġis Include No Location Classes Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// github . com / gradle / gradle / issues / 5 1 8 4 # issuecomment - 4 5 7 8 6 5 9 5 1 ĊĠĠĠĠĠĠĠ Ġexclude s Ġ= ĠlistOf (" jdk . internal .* ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠUp loading Ġto Ġa ĠMaven Ġrepository Ġrequires Ġsources Ġand Ġjavadoc Ġfiles Ġas Ġwell . Ċ Ġ* Ċ Ġ* ĠSee Ġ[ this Ġgist ]( https :// gist . github . com / k ib ot u / 9 9 4 c 9 cc 6 5 fe 6 2 3 b 7 6 b 7 6 fed fac 7 4 b 3 4 b ) Ġfor Ġgro ovy Ġversion . Ċ Ġ*/ Ċ late init Ġvar Ġsources Artifact : ĠPublish Artifact Ċ late init Ġvar Ġjavadoc Artifact : ĠPublish Artifact Ċ tasks Ġ{ ĊĠĠĠ Ġval Ġsources Jar Ġby Ġcreating ( Jar :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġarchive Classifier . set (" sources ") ĊĠĠĠĠĠĠĠ Ġfrom ( android . source Sets [" main "]. java . src Dirs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdok ka Html Ġby Ġgetting ( org . jetbrains . dok ka . gradle . D ok ka Task :: class ) ĊĊĠĠĠ Ġval Ġjavadoc Jar Ġby Ġcreating ( Jar :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On ( dok ka Html ) ĊĠĠĠĠĠĠĠ Ġarchive Classifier . set (" javadoc ") ĊĠĠĠĠĠĠĠ Ġfrom ( dok ka Html . output Directory ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġartifacts Ġ{ ĊĠĠĠĠĠĠĠ Ġsources Artifact Ġ= Ġarch ives ( sources Jar ) ĊĠĠĠĠĠĠĠ Ġjavadoc Artifact Ġ= Ġarch ives ( javadoc Jar ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠMaven ĠPublish Ġplugin Ġallows Ġyou Ġto Ġpublish Ġbuild Ġartifacts Ġto Ġan ĠApache ĠMaven Ġrepository . Ċ Ġ* ĠSee Ġ[ here ]( https :// docs . gradle . org / current / user guide / publishing _ maven . html ) Ċ Ġ* Ġand Ġ[ here ]( https :// developer . android . com / studio / build / maven - publish - plugin ) Ċ Ġ* Ġand Ġ[ here ]( https :// maven . apache . org / repository / guide - central - repository - upload . html ) Ċ Ġ* Ċ Ġ* ĠUse Ġ* publish * Ġtask Ġto Ġpublish Ġthe Ġartifact Ġto Ġthe Ġdefined Ġrepositories . Ċ Ġ*/ Ċ after Evaluate Ġ{ ĊĠĠĠ Ġpublishing Ġ{ ĊĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĠThe ĠSon atype ĠMaven ĠCentral Ġrepository Ġis Ġdefined Ġin Ġthe Ġpublish . gradle Ġscript Ġ*/ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGitHub ĠPackages Ġrepository ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" GitHub Packages " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġuri (" https :// maven . pkg . github . com / ma hoz ad /$ github ProjectName ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġproject . properties [" github . username "] Ġas ĠString ? Ġ?: ĠSystem . getenv (" GITHUB _ ACT OR ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġproject . properties [" github . token "] Ġas ĠString ? Ġ?: ĠSystem . getenv (" GITHUB _ TOKEN ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLocal Ġrepository Ġwhich Ġcan Ġbe Ġpublished Ġto Ġfirst Ġto Ġcheck Ġartifacts ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Local Test Repo " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġuri (" file ://${ build Dir }/ local - repository ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreates Ġa ĠMaven Ġpublication Ġcalled Ġ" release ". ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate < Maven Publication >(" Release ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠApplies Ġthe Ġcomponent Ġfor Ġthe Ġrelease Ġbuild Ġvariant Ġ( two Ġartifacts : Ġthe Ġa ar Ġand Ġthe Ġsources ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( components [" release "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠYou Ġcan Ġthen Ġcustomize Ġattributes Ġof Ġthe Ġpublication Ġas Ġshown Ġbelow ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId Ġ= Ġ" ir . ma hoz ad . android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġ" pie - chart " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġproject . version . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( sources Artifact ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( javadoc Artifact ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// ma hoz ad . ir /$ github ProjectName ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( github ProjectName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . set ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Ġlibrary Ġfor Ġcreating Ġpie Ġcharts Ġand Ġdon ut Ġcharts Ġin ĠAndroid . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThe Ġaim Ġof Ġthis Ġlibrary Ġis Ġto Ġprovide Ġa Ġfull - featured Ġchart Ġview Ġand Ġto Ġenable Ġusers Ġto Ġcustomize Ġit Ġto Ġthe Ġmost Ġextent Ġpossible . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVisit Ġthe Ġproject Ġon ĠGitHub Ġto Ġlearn Ġmore . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin ception Year . set (" 2 0 2 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" Apache - 2 . 0 ĠLicense ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" http :// www . apache . org / licenses / LICENSE - 2 . 0 . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set (" ma hoz ad ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" M ah di ĠH os se in z ade h ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// ma hoz ad . ir /") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail . set ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroles . set ( listOf (" Lead ĠDeveloper ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimezone . set (" GMT + 4 : 3 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontributors Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcontributor Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . set (" HEAD ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// github . com / ma hoz ad /$ github ProjectName ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . set (" scm : git : github . com / ma hoz ad /$ github ProjectName . git ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Connection . set (" scm : git : ssh :// github . com / ma hoz ad /$ github ProjectName . git ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġissue Management Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem . set (" GitHub ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// github . com / ma hoz ad /$ github ProjectName / issues ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġci Management Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem . set (" GitHub ĠActions ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// github . com / ma hoz ad /$ github ProjectName / actions ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate < Maven Publication >(" Debug ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( components [" debug "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId Ġ= Ġ" ir . ma hoz ad . android " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġ" pie - chart - debug " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġproject . version . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠUsage : Ġgradle w Ġincrement Version Ġ[- P [ mode = major | minor | patch ] |[ override Version = x ]] Ċ tasks . create (" increment Version ") Ġ{ ĊĠĠĠ Ġgroup Ġ= Ġ" version ing " ĊĠĠĠ Ġdescription Ġ= Ġ" In crements Ġthe Ġlibrary Ġversion Ġeverywhere Ġit Ġis Ġused ." ĊĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( old Major , Ġold Minor , Ġold Patch ) Ġ= Ġversion . toString (). split (".") ĊĠĠĠĠĠĠĠ Ġvar Ġ( new Major , Ġnew Minor , Ġnew Patch ) Ġ= ĠarrayOf ( old Major , Ġold Minor , Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġwhen Ġ( properties [" mode "]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" major " Ġ-> Ġnew Major Ġ= Ġ( old Major . toInt () Ġ+ Ġ 1 ). toString (). also Ġ{ Ġnew Minor Ġ= Ġ" 0 " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" minor " Ġ-> Ġnew Minor Ġ= Ġ( old Minor . toInt () Ġ+ Ġ 1 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠ Ġ-> Ġnew Patch Ġ= Ġ( old Patch . toInt () Ġ+ Ġ 1 ). toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġnew Version Ġ= Ġ"$ new Major .$ new Minor .$ new Patch " ĊĠĠĠĠĠĠĠ Ġval Ġnew Version Code Ġ= Ġ( android . default Config . version Code Ġ?: Ġ 0 ) Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġproperties [" override Version "] ?. toString ()?. let Ġ{ Ġnew Version Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġwith ( file ("../ README . md ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrite Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace First (" :$ version ", Ġ": $ new Version ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith ( build File ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrite Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace First ( Regex ("\" $ version \"" ), Ġ"\" $ new Version \" ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace First ( Regex (" version Code Ġ= Ġ\\ d + "), Ġ" version Code Ġ= Ġ$ new Version Code ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġval ĠP UB L ISH _ GROUP _ ID Ġby Ġextra (" ir . ma hoz ad . android ") Ċ // Ġval ĠP UB L ISH _ AR TI FACT _ ID Ġby Ġextra (" pie - chart ") Ċ // Ġval ĠP UB L ISH _ VERSION Ġby Ġextra (" 0 . 1 . 0 ") Ċ Ċ apply ( from Ġ= Ġ"${ root Project . project Dir }/ scripts / publish - module . gradle ") Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠNOTE : ĠCould Ġnot Ġadd Ġ* android x : appcompat * Ġlibrary Ġfor Ġandroid Test Ġconfiguration ĊĠĠĠĠ Ġ* ĠĠĠ Ġbecause Ġit Ġresulted Ġin Ġconflicting Ġversions Ġof Ġandroidx : lifecycle Ġdependency ĊĠĠĠĠ Ġ* ĠĠĠ Ġthat Ġcould Ġnot Ġbe Ġresolved Ġ( by , Ġfor Ġexample , Ġforcing Ġa Ġspecific Ġversion Ġof Ġit ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġimplementation (" org . jetbrains . kotlin : kotlin - stdlib :$ kotlin Version ") ĊĠĠĠ Ġimplementation (" android x . core : core - k tx : 1 . 6 . 0 ") ĊĠĠĠ Ġtest Implementation (" org . junit . jupiter : junit - jupiter : 5 . 7 . 2 ") ĊĠĠĠ Ġtest Implementation (" org . assertj : assertj - core : 3 . 2 0 . 2 ") ĊĠĠĠ Ġtest Implementation (" org . mockito : mockito - core : 3 . 1 1 . 2 ") ĊĠĠĠ Ġtest Implementation (" org . mockito : mockito - junit - jupiter : 3 . 1 1 . 2 ") ĊĠĠĠ Ġandroid Test Implementation (" android x . constraint layout : constraint layout : 2 . 1 . 0 ") ĊĠĠĠ Ġandroid Test Implementation (" org . junit . jupiter : junit - jupiter : 5 . 7 . 2 ") ĊĠĠĠ Ġandroid Test Implementation (" android x . test . ext : junit - k tx : 1 . 1 . 3 ") ĊĠĠĠ Ġandroid Test Implementation (" android x . test : runner : 1 . 4 . 0 ") ĊĠĠĠ Ġandroid Test Implementation (" android x . test . espress o : espress o - core : 3 . 4 . 0 ") ĊĠĠĠ Ġandroid Test Implementation (" android x . test . uia utom ator : uia utom ator : 2 . 2 . 0 ") ĊĠĠĠ Ġandroid Test Implementation (" org . assertj : assertj - core : 3 . 2 0 . 2 ") ĊĠĠĠ Ġandroid Test Implementation (" de . mann oder ma us . junit 5 : android - test - core : 1 . 2 . 2 ") ĊĠĠĠ Ġandroid Test Runtime Only (" de . mann oder ma us . junit 5 : android - test - runner : 1 . 2 . 2 ") Ċ } Ċ