1*f585d8a3SJacky Wang#!/bin/bash 2*f585d8a3SJacky Wang 3*f585d8a3SJacky Wangset -eu 4*f585d8a3SJacky Wang 5*f585d8a3SJacky Wangreadonly MVN_GOAL="$1" 6*f585d8a3SJacky Wangreadonly VERSION_NAME="$2" 7*f585d8a3SJacky Wangshift 2 8*f585d8a3SJacky Wangreadonly EXTRA_MAVEN_ARGS=("$@") 9*f585d8a3SJacky Wang 10*f585d8a3SJacky Wang# Builds and deploy the Gradle plugin. 11*f585d8a3SJacky Wang_deploy_plugin() { 12*f585d8a3SJacky Wang local plugindir=java/dagger/hilt/android/plugin 13*f585d8a3SJacky Wang ./$plugindir/gradlew -p $plugindir --no-daemon clean \ 14*f585d8a3SJacky Wang publishAllPublicationsToMavenRepository -PPublishVersion="$VERSION_NAME" 15*f585d8a3SJacky Wang local outdir=$plugindir/main/buildOut/repo/com/google/dagger/hilt-android-gradle-plugin/$VERSION_NAME 16*f585d8a3SJacky Wang local markerOutDir=$plugindir/main/buildOut/repo/com/google/dagger/hilt/android/com.google.dagger.hilt.android.gradle.plugin/$VERSION_NAME 17*f585d8a3SJacky Wang # When building '-SNAPSHOT' versions in gradle, the filenames replaces 18*f585d8a3SJacky Wang # '-SNAPSHOT' with timestamps, so we need to disambiguate by finding each file 19*f585d8a3SJacky Wang # to deploy. See: https://stackoverflow.com/questions/54182823/ 20*f585d8a3SJacky Wang local suffix 21*f585d8a3SJacky Wang if [[ "$VERSION_NAME" == *"-SNAPSHOT" ]]; then 22*f585d8a3SJacky Wang # Gets the timestamp part out of the name to be used as suffix. 23*f585d8a3SJacky Wang # Timestamp format is ########.######-#. 24*f585d8a3SJacky Wang suffix=$(find $outdir -name "*.pom" | grep -Eo '[0-9]{8}\.[0-9]{6}-[0-9]{1}') 25*f585d8a3SJacky Wang else 26*f585d8a3SJacky Wang suffix=$VERSION_NAME 27*f585d8a3SJacky Wang fi 28*f585d8a3SJacky Wang mvn "$MVN_GOAL" \ 29*f585d8a3SJacky Wang -Dfile="$(find $outdir -name "*-$suffix.jar")" \ 30*f585d8a3SJacky Wang -DpomFile="$(find $outdir -name "*-$suffix.pom")" \ 31*f585d8a3SJacky Wang -Dsources="$(find $outdir -name "*-$suffix-sources.jar")" \ 32*f585d8a3SJacky Wang -Djavadoc="$(find $outdir -name "*-$suffix-javadoc.jar")" \ 33*f585d8a3SJacky Wang "${EXTRA_MAVEN_ARGS[@]:+${EXTRA_MAVEN_ARGS[@]}}" 34*f585d8a3SJacky Wang mvn "$MVN_GOAL" \ 35*f585d8a3SJacky Wang -Dfile="$(find $markerOutDir -name "*-$suffix.pom")" \ 36*f585d8a3SJacky Wang -DpomFile="$(find $markerOutDir -name "*-$suffix.pom")" \ 37*f585d8a3SJacky Wang "${EXTRA_MAVEN_ARGS[@]:+${EXTRA_MAVEN_ARGS[@]}}" 38*f585d8a3SJacky Wang} 39*f585d8a3SJacky Wang 40*f585d8a3SJacky Wang# Gradle Plugin is built with Gradle, but still deployed via Maven (mvn) 41*f585d8a3SJacky Wang_deploy_plugin 42