diff --git a/.gitignore b/.gitignore index b023787595..da1ac877dc 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,7 @@ test-output MANIFEST.MF work atlassian-ide-plugin.xml + +# Cached artifacts +/build-cache/* +!/build-cache/.keep diff --git a/.travis.yml b/.travis.yml index bb8adf60b0..4f7e1fcd9c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,28 +1,27 @@ -language: java -jdk: - - oraclejdk8 +dist: xenial +language: minimal +sudo: true +services: + - docker -before_script: - - travis/before_script.sh +env: + global: + - SERVICE_NAME=async-http-client + - REVISION=2.5.3-SNAPSHOT + - secure: vto8UyM7tMHE4tUwxmYC150orDzrz/6b33m8V6+yh1uHWJmtqhyshsjLKFMmiqkAHz/7jmrgMMlHcnYJ27IyNJsqd4WNQfUjf9nRuizbRKD+yhy7R+IKbgy8bSYizyvQ/4T07sJkOcebzXJigTlOjxpwDfKgBj7vqr5paXrir0Srs0jjgyMxnASFYaBvy2i6wPyPqslkbwHwTapWg3porl/EmSj9rmgHVnPED5CPYraMp+zTHJCpP6xgGn1N3wS+x3sUDZ4MSHeZLXbaSzmIIUBNbYSUjOnEspD0Pi/78G1cl6sW7KiSIAt+H6hoy1+rU6J4RyB8M6pSvNJDlgnYfemG/6onTAXA5n/0+dcs1X2skA3GscOmPoEUuPYyKeQwk2eXK67UC7LNSu1HSAeIxPgwKv4axmFPv/2GJtM70HP28cR35gzyWMMhsxGT7tuKE7W83bEuT/nUzXCWCC80LCOpRRHvfxczUO7bFDE9Be4K/xKtIAJiHZimcvixRoxRojPVSr8DrmeSFA+oGgE6F0hW6cQDynqF7FlmIb+6h3DVPWegQZqi7RP3UHy2qSwj2gAYAydd6FHib7juc8K4xIDdgZ53reCmQL6ULEwKF2unWDxLZ3urqDmhIc3qRH6it9VWdKoNr25EDgKXMVfiGoeKeZBVAl0KtdD6kDgLE9Q= + - secure: mLmKxZKFaaa98pVHMMcF/XEoXIebrOX7B9ZSLdGeB/2N9PWQnTRRThLrbd2gY1mpxPW+Nu6Nn4M0eh0g0kfYpypaetq7RO8GtNgRDW7qNDTr3q+dcV0+xW2YC+sAhvOnTMu8uz0bHf1y6iQMMvjggU9pyBD9iGtcANn5WXg+UW9cnlvx44MIzpKXt9RzItNpRgTC2/z+j8QL5zjwpMB2xT6EuP7ZFj1xnCQTAZ04qdOmM9Ro7rpvw0zYUIsYuEiyZMIgaGAsaGr00+VpbM9yRQTx7gGjvU6DLs3NfjJrl9ZyaR/vofAGjeV8DBNWBJwL6faq3y091joLIsWv4+tDfh+SZVwbUUhhHZUS0tuqebC0XAQMR5SAfOcO7t7blu9zk3esaeGYWaahQ3Jy1XupvuRQRu9Uj2p5tQTNRrDN9/8l4a9lwdhruDeHUeAwT1UGyx68WhXppWHuHw/Gbt20mo6nspuFPVJ5JrqdYrcfL4dUs+XY2sg4esweivOfrUy7F0noA85/Ol14P2wHyVp4aO+Bc8R+g87MxVlPm+vyW2YJQOi9EYFnPc6YyCu/RbXjvGh6y8izAN6BojeRJ9OJZjRZCG2s9CgL7a75ZOJEQ/ADpnJyhjD6XPlq7ZLwrh0j9fKLTYpk/zh26Ws/ZtGi0sMlwIXotGzVrIQUGgOmS00= + - secure: DPh5/VR6H3TSzReXgN6HVUoS7nvBX6nchs4esS0jLc/H34wAhC87d8g/8rn7GOvlf/jfr3ujUdl9EFGEy5WjfhNJYDqD/lLz2FmeNh8mI5ZX6mAhmd1CI7ow3miT/Dj/jdY/felWjgWRQIZRaYAv+qwoT96JSSEIO4lpfzafp4lXeD9oKp5t2Uk+Afz41x+e/OCoOW1VtUZi9VEiKbxcQCrwZRuHptTveJCi86zPeIokuUT+BBs0qQur960bq0c+XpkOC6tg3SLIQJJ/OSariiGfuap/A8ZObn9YFprmUYUUV9X8sOPuCBMOMQkqeG9DxNGEloHa9Xi+QpLTfFuLPvyp+PhZVYlMLvsH2GeWLNimlBqENaeKt/2DcO6pwf5TB0JcpV5tEPcjI3QVuqUEk6oXpwwAdoff4bN6Uafo3vKyQXEAsr26b590kxAhKxpI7nPmYtvHSkCfVxLh5Q2R6C0dpaGdamBRKjD+Lku2PJXE+lErk5SnK2BgBkiuuBaxVvUYO9RatucVVne+VDTJY6brcXJEEDs/myfK6lpF2cb5BM14l58iHWBQHmiDhGyl3CKRVXpavG9IuuVMf7siV0957ixCZstlU7J4RDwunGrl6RM3BQdj55atnHu+AKuy3piVy+NX+IimiaRsWw+N04pO3sAakG0fMa1YQ55RDOQ= + - secure: eZclfJ0N5XzH4Y8ZzLrbcX6iv9Mgc4gctU//jNTN39U2qlBvSUiuY3GDwZfPZjC/V0aeS1+Kb/NBeHaOTfEcqd3+nn4lYrEz3Aqi3NJoapgcWtcQDwIs9edRoJLxZ2iRJJqMY0ONTDur5qgAw+21Pk1KCHFMYVwHcXuOqf5fGTxhi0m1qSEHXJUNnVHP9mAwcF9YvmePeBi/s9RU/E6vHjjg7ZH//JTnGYERn9EqygXwFP+BKx+HrI+8mzmgOiZvwJkUrA6Yk6Z0QIcMiBfIVKm8AdQr4lo8UtZcm1YWz4z0wnN24UxKf3PwKy9Br9Ol2T4nLlAfRYBmNF6HM/nsC+TENfelZvp8xkH79hsdSfCNoWS5Ir1LgvKGJ/Nr/msM80bvBOqsqeT3MaInuWVRfAVhYlFhqUHuVSQf74qbSYXCyMnUR5GYZ6ZY/aYcXw1bFDmBLBRroMw4E76NLsmqoAU8Cq9PaZIqsGGt5fqv5tJMEPaAWr0tNwywtVVoLV3wZh15dClMRkfvrYEUuSBLw0neAHDVNz4UYvySfQgAtDIndxR9lwoBssMGi4zNVfFJ/kAFSTaWoiwu2Q7dp4LJIgG1ZHvUV1uICZhd9rPjEjS83FNCSAt1WBX7r8hLbBLhZBjl7dMl4CQqW4xC6JjzHjACiHGpjoyBBy9arrxg4PU= -script: - - mvn test -Ptest-output - - find $HOME/.m2 -name "_remote.repositories" | xargs rm - - find $HOME/.m2 -name "resolver-status.properties" | xargs rm -f - -# If building master, Publish to Sonatype -after_success: - - travis/after_success.sh +cache: + directories: + - build-cache -sudo: false +install: + - docker-compose -f docker-compose.yml build -# https://github.com/travis-ci/travis-ci/issues/3259 -addons: - apt: - packages: - - oracle-java8-installer +script: + - docker-compose -f docker-compose.yml run ${SERVICE_NAME} -# Cache settings -cache: - directories: - - $HOME/.m2/repository +before_cache: + - docker-compose -f docker-compose.yml run --rm -v `pwd`/build-cache:/app/build-cache ${SERVICE_NAME} bash docker-utils.sh save-cache diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..e61a4faff6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +# wego-async-http-client stage +FROM maven:3.6-jdk-11-slim + +# Install build dependencies +RUN apt-get -qq update && \ + apt-get -qq install -y --no-install-recommends \ + build-essential \ + openssh-client \ + && rm -rf /var/lib/apt/lists/* + +# Read repo args +ARG VERSION +ENV VERSION=${VERSION} + +WORKDIR /app +COPY . . + +RUN mvn compile -U \ + -Dmaven.test.skip=true \ + -Dgpg.skip \ + -Dproject.version=${VERSION} + +CMD mvn deploy -U \ + -Dmaven.test.skip=true \ + -Dgpg.skip \ + -DdistMgmtReleasesUrl=${REPO_URL}/releases \ + -DdistMgmtSnapshotsUrl=${REPO_URL}/snapshots \ + -DAWS_DEFAULT_REGION=${AWS_DEFAULT_REGION} \ + -Dproject.version=${VERSION} diff --git a/build-cache/.keep b/build-cache/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/client/pom.xml b/client/pom.xml index da97920051..5b635deae0 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -2,7 +2,7 @@ org.asynchttpclient async-http-client-project - 2.5.3-SNAPSHOT + ${project.version} 4.0.0 async-http-client diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000..1153be957b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.7" +services: + async-http-client: + build: + context: . + args: + VERSION: ${REVISION:?REVISION} + image: wego/async-http-client + environment: + AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:?AWS_ACCESS_KEY_ID} + AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:?AWS_SECRET_ACCESS_KEY} + AWS_DEFAULT_REGION: ${AWS_DEFAULT_REGION:?AWS_DEFAULT_REGION} + REPO_URL: ${REPO_URL:?REPO_URL} diff --git a/docker-utils.sh b/docker-utils.sh new file mode 100755 index 0000000000..21593fad90 --- /dev/null +++ b/docker-utils.sh @@ -0,0 +1,37 @@ + #!/usr/bin/env bash + + set -e + + GRADLE_CACHE_ARCHIVE='build-cache/maven.tar.gz' + GRADLE_CACHE_DIR="/root/.m2/" + + function __load_cache { + if [ -f "$GRADLE_CACHE_ARCHIVE" ] + then + mkdir $GRADLE_CACHE_DIR + tar -xzf $GRADLE_CACHE_ARCHIVE -C $GRADLE_CACHE_DIR + echo "Extracted $GRADLE_CACHE_ARCHIVE to $GRADLE_CACHE_DIR" + else + echo "$GRADLE_CACHE_ARCHIVE not found" + fi + } + + function __save_cache { + # gzip without timestamps for consistent checksum + GZIP=-n tar -czf $GRADLE_CACHE_ARCHIVE --exclude='./daemon' --exclude='./native' --exclude='./notifications' -C $GRADLE_CACHE_DIR . + md5sum $GRADLE_CACHE_ARCHIVE + echo "Saved $GRADLE_CACHE_DIR to $GRADLE_CACHE_ARCHIVE" + } + + case "$1" in + load-cache) + __load_cache + ;; + save-cache) + __save_cache + ;; + *) + echo 'Unknown command' + exit 1 + esac + diff --git a/example/pom.xml b/example/pom.xml index 075bc60bea..73b6634b17 100644 --- a/example/pom.xml +++ b/example/pom.xml @@ -2,7 +2,7 @@ org.asynchttpclient async-http-client-project - 2.5.3-SNAPSHOT + ${project.version} 4.0.0 async-http-client-example diff --git a/extras/guava/pom.xml b/extras/guava/pom.xml index 151393daef..0772632804 100644 --- a/extras/guava/pom.xml +++ b/extras/guava/pom.xml @@ -2,7 +2,7 @@ org.asynchttpclient async-http-client-extras-parent - 2.5.3-SNAPSHOT + ${project.version} 4.0.0 async-http-client-extras-guava @@ -18,4 +18,4 @@ 14.0.1 - \ No newline at end of file + diff --git a/extras/jdeferred/pom.xml b/extras/jdeferred/pom.xml index aefd9cd662..0a220f8db1 100644 --- a/extras/jdeferred/pom.xml +++ b/extras/jdeferred/pom.xml @@ -18,7 +18,7 @@ async-http-client-extras-parent org.asynchttpclient - 2.5.3-SNAPSHOT + ${project.version} async-http-client-extras-jdeferred Asynchronous Http Client JDeferred Extras diff --git a/extras/pom.xml b/extras/pom.xml index 5443b9ffcc..b2f1c843f0 100644 --- a/extras/pom.xml +++ b/extras/pom.xml @@ -2,7 +2,7 @@ org.asynchttpclient async-http-client-project - 2.5.3-SNAPSHOT + ${project.version} 4.0.0 async-http-client-extras-parent @@ -32,7 +32,7 @@ org.asynchttpclient async-http-client - ${project.version} + 2.5.3-SNAPSHOT test tests diff --git a/extras/registry/pom.xml b/extras/registry/pom.xml index 995d6b21f5..42feb12137 100644 --- a/extras/registry/pom.xml +++ b/extras/registry/pom.xml @@ -2,7 +2,7 @@ org.asynchttpclient async-http-client-extras-parent - 2.5.3-SNAPSHOT + ${project.version} 4.0.0 async-http-client-extras-registry @@ -10,4 +10,4 @@ The Async Http Client Registry Extras. - \ No newline at end of file + diff --git a/extras/retrofit2/pom.xml b/extras/retrofit2/pom.xml index 9322cb6e7e..bd286c70d8 100644 --- a/extras/retrofit2/pom.xml +++ b/extras/retrofit2/pom.xml @@ -4,7 +4,7 @@ async-http-client-extras-parent org.asynchttpclient - 2.5.3-SNAPSHOT + ${project.version} async-http-client-extras-retrofit2 diff --git a/extras/rxjava/pom.xml b/extras/rxjava/pom.xml index 9225a76d1d..f24287e44a 100644 --- a/extras/rxjava/pom.xml +++ b/extras/rxjava/pom.xml @@ -3,7 +3,7 @@ async-http-client-extras-parent org.asynchttpclient - 2.5.3-SNAPSHOT + ${project.version} async-http-client-extras-rxjava Asynchronous Http Client RxJava Extras diff --git a/extras/rxjava2/pom.xml b/extras/rxjava2/pom.xml index f165dc1725..51387bb176 100644 --- a/extras/rxjava2/pom.xml +++ b/extras/rxjava2/pom.xml @@ -3,7 +3,7 @@ async-http-client-extras-parent org.asynchttpclient - 2.5.3-SNAPSHOT + ${project.version} async-http-client-extras-rxjava2 Asynchronous Http Client RxJava2 Extras diff --git a/extras/simple/pom.xml b/extras/simple/pom.xml index 05c1ac0d1f..222d5ccd84 100644 --- a/extras/simple/pom.xml +++ b/extras/simple/pom.xml @@ -3,7 +3,7 @@ async-http-client-extras-parent org.asynchttpclient - 2.5.3-SNAPSHOT + ${project.version} async-http-client-extras-simple Asynchronous Http Simple Client diff --git a/extras/typesafeconfig/pom.xml b/extras/typesafeconfig/pom.xml index d121e009c5..fea014f820 100644 --- a/extras/typesafeconfig/pom.xml +++ b/extras/typesafeconfig/pom.xml @@ -4,7 +4,7 @@ async-http-client-extras-parent org.asynchttpclient - 2.5.3-SNAPSHOT + ${project.version} async-http-client-extras-typesafe-config diff --git a/netty-utils/pom.xml b/netty-utils/pom.xml index 79aa56d555..418e0c8743 100644 --- a/netty-utils/pom.xml +++ b/netty-utils/pom.xml @@ -2,7 +2,7 @@ org.asynchttpclient async-http-client-project - 2.5.3-SNAPSHOT + ${project.version} 4.0.0 async-http-client-netty-utils diff --git a/pom.xml b/pom.xml index ce6249110e..4b7d7b8bb7 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ org.asynchttpclient async-http-client-project Asynchronous Http Client Project - 2.5.3-SNAPSHOT + ${project.version} pom The Async Http Client (AHC) library's purpose is to allow Java @@ -77,6 +77,11 @@ maven-scm-manager-plexus 1.6 + + com.gkatzioura.maven.cloud + s3-storage-wagon + 1.8 + install @@ -151,6 +156,30 @@ + + org.codehaus.mojo + flatten-maven-plugin + 1.0.0 + + true + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + @@ -194,19 +223,18 @@ - - - sonatype-nexus-staging - Sonatype Release - http://oss.sonatype.org/service/local/staging/deploy/maven2 - - - - sonatype-nexus-snapshots - sonatype-nexus-snapshots - ${distMgmtSnapshotsUrl} - - + + + dist-release + dist-release + ${distMgmtReleasesUrl} + + + dist-snapshots + dist-snapshots + ${distMgmtSnapshotsUrl} + + netty-utils client @@ -398,7 +426,10 @@ + + 2.5.3-SNAPSHOT http://oss.sonatype.org/content/repositories/snapshots + http://oss.sonatype.org/content/repositories/releases true 1.8 1.8