blob: 3c25c10b77252016792ca0e7709761dcb058e8c9 [file] [log] [blame]
#!/bin/bash
set -eu
readonly MVN_GOAL="$1"
readonly VERSION_NAME="$2"
shift 2
readonly EXTRA_MAVEN_ARGS=("$@")
# Builds and deploys the given artifacts to a configured maven goal.
# @param {string} library the library to deploy.
# @param {string} pomfile the pom file to deploy.
# @param {string} srcjar the sources jar of the library. This is an optional
# parameter, if provided then javadoc must also be provided.
# @param {string} javadoc the java doc jar of the library. This is an optional
# parameter, if provided then srcjar must also be provided.
_deploy() {
local library=$1
local pomfile=$2
local srcjar=$3
local javadoc=$4
bash $(dirname $0)/deploy-library.sh \
"$library" \
"$pomfile" \
"$srcjar" \
"$javadoc" \
"$MVN_GOAL" \
"$VERSION_NAME" \
"${EXTRA_MAVEN_ARGS[@]:+${EXTRA_MAVEN_ARGS[@]}}"
}
_deploy \
java/dagger/hilt/android/artifact.aar \
java/dagger/hilt/android/pom.xml \
java/dagger/hilt/android/artifact-src.jar \
java/dagger/hilt/android/artifact-javadoc.jar
_deploy \
java/dagger/hilt/android/testing/artifact.aar \
java/dagger/hilt/android/testing/pom.xml \
java/dagger/hilt/android/testing/artifact-src.jar \
java/dagger/hilt/android/testing/artifact-javadoc.jar
_deploy \
java/dagger/hilt/processor/artifact.jar \
java/dagger/hilt/processor/pom.xml \
java/dagger/hilt/processor/artifact-src.jar \
java/dagger/hilt/processor/artifact-javadoc.jar
_deploy \
java/dagger/hilt/android/processor/artifact.jar \
java/dagger/hilt/android/processor/pom.xml \
java/dagger/hilt/android/processor/artifact-src.jar \
java/dagger/hilt/android/processor/artifact-javadoc.jar
_deploy \
java/dagger/hilt/artifact-core.jar \
java/dagger/hilt/pom.xml \
java/dagger/hilt/artifact-core-src.jar \
java/dagger/hilt/artifact-core-javadoc.jar
# Builds and deploy the Gradle plugin.
_deploy_plugin() {
local plugindir=java/dagger/hilt/android/plugin
./$plugindir/gradlew -p $plugindir --no-daemon clean \
publishAllPublicationsToMavenRepository -PPublishVersion="$VERSION_NAME"
local outdir=$plugindir/build/repo/com/google/dagger/hilt-android-gradle-plugin/$VERSION_NAME
# When building '-SNAPSHOT' versions in gradle, the filenames replaces
# '-SNAPSHOT' with timestamps, so we need to disambiguate by finding each file
# to deploy. See: https://stackoverflow.com/questions/54182823/
local suffix
if [[ "$VERSION_NAME" == *"-SNAPSHOT" ]]; then
# Gets the timestamp part out of the name to be used as suffix.
# Timestamp format is ########.######-#.
suffix=$(find $outdir -name "*.pom" | grep -Eo '[0-9]{8}\.[0-9]{6}-[0-9]{1}')
else
suffix=$VERSION_NAME
fi
mvn "$MVN_GOAL" \
-Dfile="$(find $outdir -name "*-$suffix.jar")" \
-DpomFile="$(find $outdir -name "*-$suffix.pom")" \
-Dsources="$(find $outdir -name "*-$suffix-sources.jar")" \
-Djavadoc="$(find $outdir -name "*-$suffix-javadoc.jar")" \
"${EXTRA_MAVEN_ARGS[@]:+${EXTRA_MAVEN_ARGS[@]}}"
}
# Gradle Plugin is built with Gradle, but still deployed via Maven (mvn)
_deploy_plugin