| #!/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 |