Skip to content

Commit

Permalink
Convert deploy scripts to use Bazel
Browse files Browse the repository at this point in the history
Once the first release to Maven Central is completed with Bazel, all maven related files will be removed.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=148103405
  • Loading branch information
ronshapiro committed Feb 21, 2017
1 parent b191fb7 commit bf9e7b6
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 22 deletions.
19 changes: 7 additions & 12 deletions util/mvn-deploy.sh → util/deploy-to-maven-central.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,6 @@ if [[ ! $version_name =~ ^2\. ]]; then
exit 2
fi

# Rename snapshot version and sanity check that it doesn't exist in any poms
sed -i s/HEAD-SNAPSHOT/$version_name/g `find . -name pom.xml`
if [[ $(git grep HEAD-SNAPSHOT -- '*pom.xml') ]]; then
echo "Snapshots found in poms!"
exit 3
fi

#validate key
keystatus=$(gpg --list-keys | grep ${key} | awk '{print $1}')
if [ "${keystatus}" != "pub" ]; then
Expand All @@ -32,16 +25,18 @@ if [ "${keystatus}" != "pub" ]; then
exit 64
fi

mvn "$@" -P '!examples' -P sonatype-oss-release \
-Dgpg.skip=false -Dgpg.keyname=${key} \
clean clean site:jar deploy
sh $(dirname $0)/execute-deploy.sh \
"$version_name" \
"sonatype-nexus-staging" \
"https://oss.sonatype.org/service/local/staging/deploy/maven2/" \
"-Dgpg.keyname=${key}"

# Publish javadocs to gh-pages
mvn javadoc:aggregate -P!examples -DexcludePackageNames=*.internal
bazel build //:user-docs.jar
git clone --quiet --branch gh-pages \
https://github.com/google/dagger gh-pages > /dev/null
cd gh-pages
cp -r ../target/site/apidocs api/$version_name
unzip ../bazel-genfiles/user-docs.jar -d api/$version_name
git add api/$version_name
git commit -m "$version_name docs"
git push origin gh-pages
Expand Down
63 changes: 63 additions & 0 deletions util/execute-deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/bin/sh

VERSION_NAME=$1
REPOSITORY_ID=$2
REPOSITORY_URL=$3
EXTRA_MAVEN_ARGS=$4

python $(dirname $0)/maven/generate_poms.py $VERSION_NAME \
//core/src/main/java/dagger:core \
//compiler:compiler \
//producers:producers \
//java/dagger/android:android \
//java/dagger/android/support:support

deploy_library() {
if [[ $1 == "--shaded" ]]; then
library=$2
library_output=bazel-genfiles/$library
srcjar=$3
shift 3
else
library=$1
library_output=bazel-bin/$library
srcjar="${library%.jar}-src.jar"
shift 1
fi
javadoc=$1
pomfile=$2
bazel build $library $srcjar $javadoc
mvn gpg:sign-and-deploy-file \
-Dfile=$library_output \
-DrepositoryId=$REPOSITORY_ID \
-Durl=$REPOSITORY_URL \
-Djavadoc=bazel-genfiles/$javadoc \
-DpomFile=$pomfile \
-Dsources=bazel-bin/$srcjar \
$EXTRA_MAVEN_ARGS
}

deploy_library \
core/src/main/java/dagger/libcore.jar \
core/src/main/java/dagger/core-javadoc.jar \
dagger.pom.xml

deploy_library \
--shaded shaded_compiler.jar compiler/libcompiler-src.jar \
compiler/compiler-javadoc.jar \
dagger-compiler.pom.xml

deploy_library \
producers/libproducers.jar \
producers/producers-javadoc.jar \
dagger-producers.pom.xml

deploy_library \
java/dagger/android/libandroid.jar \
java/dagger/android/android-javadoc.jar \
dagger-android.pom.xml

deploy_library \
java/dagger/android/support/libsupport.jar \
java/dagger/android/support/support-javadoc.jar \
dagger-android-support.pom.xml
5 changes: 2 additions & 3 deletions util/generate-latest-docs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ if [ "$TRAVIS_REPO_SLUG" == "google/dagger" ] && \
[ "$TRAVIS_PULL_REQUEST" == "false" ] && \
[ "$TRAVIS_BRANCH" == "master" ]; then
echo -e "Publishing javadoc...\n"
mvn javadoc:aggregate -P!examples -DexcludePackageNames=*.internal
TARGET="$(pwd)/target"
bazel build //:user-docs.jar

cd $HOME
git clone --quiet --branch=gh-pages https://${GH_TOKEN}@github.com/google/dagger gh-pages > /dev/null
Expand All @@ -16,7 +15,7 @@ if [ "$TRAVIS_REPO_SLUG" == "google/dagger" ] && \
git config --global user.name "travis-ci"
git rm -rf api/latest
mkdir -p api
mv ${TARGET}/site/apidocs api/latest
unzip ../bazel-genfiles/user-docs.jar -d api/latest
git add -f api/latest
git commit -m "Lastest javadoc on successful travis build $TRAVIS_BUILD_NUMBER auto-pushed to gh-pages"
git push -fq origin gh-pages > /dev/null
Expand Down
21 changes: 15 additions & 6 deletions util/maven/generate_poms.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@
# limitations under the License.

import os
import re
from subprocess import check_output
import sys
from workspace_parser import maven_artifacts
from xml_formatting import generate_pom


def _shell(command):
output = check_output(command,
shell=True,
Expand Down Expand Up @@ -62,26 +64,30 @@ def pom_deps(label):
'name': 'Dagger Producers',
'artifact': 'dagger-producers',
},
'//android/src/main/java/dagger/android:android': {
'//java/dagger/android:android': {
'name': 'Dagger Android',
'artifact': 'dagger-android',
'alias': '//android:android',
'packaging': 'aar',
},
'//java/dagger/android/support:support': {
'name': 'Dagger Android Support',
'artifact': 'dagger-android-support',
'packaging': 'aar',
},
}

class UnknownDependencyException(Exception): pass

def main():
if len(sys.argv) <= 3:
if len(sys.argv) < 3:
print 'Usage: %s <version> <target_for_pom>...' % sys.argv[0]
sys.exit(1)

version = sys.argv[1]
artifacts = maven_artifacts()
artifacts['@androidsdk//com.android.support:support-annotations-24.2.0'] = (
'com.android.support:support-annotations:24.2.0'
)

android_sdk_pattern = re.compile(
r'@androidsdk//([a-z.-]*):([a-z0-9-]*)-([0-9.]*)')

for label, metadata in METADATA.iteritems():
artifacts[label] = (
Expand All @@ -93,6 +99,9 @@ def main():
def artifact_for_dep(label):
if label in artifacts:
return artifacts[label]
match = android_sdk_pattern.match(label)
if match:
return ':'.join(match.groups())
raise UnknownDependencyException('No artifact found for %s' % label)

for arg in sys.argv[2:]:
Expand Down
5 changes: 4 additions & 1 deletion util/publish-snapshot-on-commit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@ if [ "$TRAVIS_REPO_SLUG" == "google/dagger" ] && \
[ "$TRAVIS_BRANCH" == "master" ]; then
echo -e "Publishing maven snapshot...\n"

mvn clean source:jar deploy --settings="util/settings.xml" -DskipTests=true -Dinvoker.skip=true -Dmaven.javadoc.skip=true
sh $(dirname $0)/execute-deploy.sh \
"HEAD-SNAPSHOT" \
"sonatype-nexus-snapshots" \
"https://oss.sonatype.org/content/repositories/snapshots"

echo -e "Published maven snapshot"
else
Expand Down

0 comments on commit bf9e7b6

Please sign in to comment.