xref: /aosp_15_r20/external/dagger2/util/deploy-hilt-gradle-plugin.sh (revision f585d8a307d0621d6060bd7e80091fdcbf94fe27)
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