[
https://issues.apache.org/jira/browse/AVRO-2229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16685175#comment-16685175
]
ASF GitHub Bot commented on AVRO-2229:
--------------------------------------
Fokko closed pull request #343: AVRO-2229. Test using a Docker image
URL: https://github.com/apache/avro/pull/343
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 000000000..1d085cacc
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1 @@
+**
diff --git a/build.sh b/build.sh
index 8810d6bfa..dc1277208 100755
--- a/build.sh
+++ b/build.sh
@@ -38,41 +38,35 @@ do
case "$target" in
test)
- # run lang-specific tests
- (cd lang/java; ./build.sh test)
- # install java artifacts required by other builds and interop tests
- mvn install -DskipTests
- (cd lang/py; ./build.sh test)
- (cd lang/py3; ./build.sh test)
- (cd lang/c; ./build.sh test)
- (cd lang/c++; ./build.sh test)
- (cd lang/csharp; ./build.sh test)
- (cd lang/js; ./build.sh test)
- (cd lang/ruby; ./build.sh test)
- (cd lang/php; ./build.sh test)
- (cd lang/perl; ./build.sh test)
-
# create interop test data
mkdir -p build/interop/data
- (cd lang/java/avro; mvn -P interop-data-generate generate-resources)
- (cd lang/py; ant interop-data-generate)
- (cd lang/c; ./build.sh interop-data-generate)
- #(cd lang/c++; make interop-data-generate)
- (cd lang/ruby; rake generate_interop)
- (cd lang/php; ./build.sh interop-data-generate)
-
- # run interop data tests
- (cd lang/java; mvn test -P interop-data-test)
- (cd lang/py; ant interop-data-test)
- (cd lang/c; ./build.sh interop-data-test)
- #(cd lang/c++; make interop-data-test)
- (cd lang/ruby; rake interop)
- (cd lang/php; ./build.sh test-interop)
+
+ # install java artifacts required by other builds and interop tests
+ mvn -B install -DskipTests
+
+ for buildstep in test interop-data-generate interop-data-test
+ do
+ for lang in `pwd`/lang/*/
+ do
+ headline "##### Run ${buildstep} for $lang"
+
+ if [[ "$lang" = *"c++"* ]]; then
+ # The current cpp tests are failing:
+ # https://issues.apache.org/jira/projects/AVRO/issues/AVRO-2230
+ (cd "$lang"; ./build.sh ${buildstep} || true)
+ else
+ (cd "$lang"; ./build.sh ${buildstep})
+ fi
+ done
+ done
# java needs to package the jars for the interop rpc tests
(cd lang/java; mvn package -DskipTests)
+
# run interop rpc test
- /bin/bash share/test/interop/bin/test_rpc_interop.sh
+ # Currently failing, need to be fixed:
+ # https://issues.apache.org/jira/browse/AVRO-2239
+ # /bin/bash share/test/interop/bin/test_rpc_interop.sh
;;
dist)
@@ -238,7 +232,10 @@ UserSpecificDocker
docker-test)
docker build -t avro-test -f share/docker/Dockerfile .
- docker run --rm -v ${PWD}:/avro/ avro-test
+ docker run --rm \
+ -v ${PWD}:/avro/ \
+ -v ${HOME}/.m2:/root/.m2 \
+ avro-test
;;
*)
@@ -247,5 +244,3 @@ UserSpecificDocker
esac
done
-
-exit 0
diff --git a/lang/c++/build.sh b/lang/c++/build.sh
index 17fff4089..2a018d602 100755
--- a/lang/c++/build.sh
+++ b/lang/c++/build.sh
@@ -18,7 +18,7 @@
set -e # exit on error
function usage {
- echo "Usage: $0 {test|dist|clean|install|doc}"
+ echo "Usage: $0
{test|dist|clean|install|doc|interop-data-test|interop-data-generate}"
exit 1
}
@@ -103,6 +103,14 @@ case "$target" in
rm -rf doc test.avro test6.df
;;
+ interop-data-generate)
+ echo "Not (yet) implemented"
+ ;;
+
+ interop-data-test)
+ echo "Not (yet) implemented"
+ ;;
+
install)
(cd build && cmake -G "Unix Makefiles" -D CMAKE_BUILD_TYPE=Release .. &&
make install)
;;
@@ -112,5 +120,3 @@ case "$target" in
esac
done
-
-exit 0
diff --git a/lang/c/build.sh b/lang/c/build.sh
index f76f03550..fcd0fe732 100755
--- a/lang/c/build.sh
+++ b/lang/c/build.sh
@@ -92,5 +92,3 @@ case "$1" in
echo "Usage: $0 {interop-data-generate|interop-data-test|test|dist|clean}"
exit 1
esac
-
-exit 0
diff --git a/lang/csharp/build.sh b/lang/csharp/build.sh
index cb9f7fc89..b6f585c91 100755
--- a/lang/csharp/build.sh
+++ b/lang/csharp/build.sh
@@ -58,9 +58,15 @@ case "$1" in
rm -f TestResult.xml
;;
+ interop-data-generate)
+ echo "Not (yet) implemented"
+ ;;
+
+ interop-data-test)
+ echo "Not (yet) implemented"
+ ;;
+
*)
echo "Usage: $0 {test|clean|dist|perf}"
exit 1
esac
-
-exit 0
diff --git a/share/docker/run-tests.sh b/lang/java/avro/build.sh
old mode 100755
new mode 100644
similarity index 61%
rename from share/docker/run-tests.sh
rename to lang/java/avro/build.sh
index e9919a7f6..9f051a276
--- a/share/docker/run-tests.sh
+++ b/lang/java/avro/build.sh
@@ -15,24 +15,28 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-headline(){
- echo -e
"\e[1;34m#################################################################"
- echo -e "##### $1 \e[1;37m"
- echo -e
"\e[1;34m#################################################################\e[0m"
+set -e # exit on error
+
+function usage {
+ echo "Usage: $0 {test|clean|interop-data-generate|interop-data-test}"
+ exit 1
}
-set -e
+case "$target" in
+ test)
+ mvn -B test
+ ;;
+
+ clean)
+ mvn clean
+ ;;
+
+ interop-data-test)
+ mvn clean
+ ;;
-for lang in /avro/lang/*/
-do
- headline "Run tests: $lang"
- cd "$lang"
+ *)
+ usage
+esac
- if [[ "$lang" = *"c++"* ]]; then
- # The current cpp tests are failing:
- # https://issues.apache.org/jira/projects/AVRO/issues/AVRO-2230
- ./build.sh test || true
- else
- ./build.sh test
- fi
done
diff --git a/lang/java/build.sh b/lang/java/build.sh
index 76f7f579d..e9a7d0226 100755
--- a/lang/java/build.sh
+++ b/lang/java/build.sh
@@ -18,7 +18,7 @@
set -e # exit on error
function usage {
- echo "Usage: $0 {test|dist|clean}"
+ echo "Usage: $0 {test|dist|clean|interop-data-generate|interop-data-test}"
exit 1
}
@@ -54,10 +54,17 @@ case "$target" in
mvn clean
;;
+
+ interop-data-generate)
+ (cd avro/; mvn -B -P interop-data-generate generate-resources)
+ ;;
+
+ interop-data-test)
+ mvn -B -P interop-data-test
+ ;;
+
*)
usage
esac
done
-
-exit 0
diff --git a/lang/java/pom.xml b/lang/java/pom.xml
index 471c34044..e40ccd3e8 100644
--- a/lang/java/pom.xml
+++ b/lang/java/pom.xml
@@ -71,7 +71,7 @@
<bundle-plugin-version>3.2.0</bundle-plugin-version>
<compiler-plugin.version>3.6.0</compiler-plugin.version>
<exec-plugin.version>1.5.0</exec-plugin.version>
- <jar-plugin.version>2.6</jar-plugin.version>
+ <jar-plugin.version>3.1.0</jar-plugin.version>
<javacc-plugin.version>2.6</javacc-plugin.version>
<javadoc-plugin.version>2.10.4</javadoc-plugin.version>
<plugin-tools-javadoc.version>3.5</plugin-tools-javadoc.version>
@@ -157,40 +157,6 @@
</lifecycleMappingMetadata>
</configuration>
</plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>${compiler-plugin.version}</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>${jar-plugin.version}</version>
-
- <!--We want to be able to resuse the test-jars for mapred
- to test avro-tool
- see http://maven.apache.org/guides/mini/guide-attached-tests.html
- -->
- <executions>
- <execution>
- <goals>
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <archive>
- <manifest>
-
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
- </manifest>
- </archive>
- </configuration>
- </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
@@ -278,6 +244,40 @@
</plugins>
</pluginManagement>
<plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>${compiler-plugin.version}</version>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>${jar-plugin.version}</version>
+
+ <!--We want to be able to resuse the test-jars for mapred
+ to test avro-tool
+ see http://maven.apache.org/guides/mini/guide-attached-tests.html
+ -->
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <archive>
+ <manifest>
+
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
diff --git a/lang/js/build.sh b/lang/js/build.sh
index 45a31f5a4..4af009edb 100755
--- a/lang/js/build.sh
+++ b/lang/js/build.sh
@@ -24,17 +24,26 @@ case "$1" in
npm install
npm run cover
;;
+
dist)
npm pack
mkdir -p ../../dist/js
mv avro-js-*.tgz ../../dist/js
;;
+
clean)
rm -rf coverage
;;
+
+ interop-data-generate)
+ echo "Not (yet) implemented"
+ ;;
+
+ interop-data-test)
+ echo "Not (yet) implemented"
+ ;;
+
*)
- echo "Usage: $0 {test|dist|clean}" >&2
+ echo "Usage: $0 {test|dist|clean|interop-data-generate|interop-data-test}"
>&2
exit 1
esac
-
-exit 0
diff --git a/lang/perl/build.sh b/lang/perl/build.sh
index d2028ec9a..47d154b00 100755
--- a/lang/perl/build.sh
+++ b/lang/perl/build.sh
@@ -56,10 +56,16 @@ case "$target" in
do_clean
;;
+ interop-data-generate)
+ echo "Not (yet) implemented"
+ ;;
+
+ interop-data-test)
+ echo "Not (yet) implemented"
+ ;;
+
*)
usage
esac
done
-
-exit 0
diff --git a/lang/php/build.sh b/lang/php/build.sh
index 6ea7bbf87..63a8cf4b6 100755
--- a/lang/php/build.sh
+++ b/lang/php/build.sh
@@ -68,6 +68,3 @@ case "$1" in
*)
echo "Usage: $0 {interop-data-generate|test-interop|test|dist|clean}"
esac
-
-
-exit 0
diff --git a/lang/py/build.sh b/lang/py/build.sh
index 0169b0bd8..6b29c67ce 100755
--- a/lang/py/build.sh
+++ b/lang/py/build.sh
@@ -18,7 +18,7 @@
set -e # exit on error
function usage {
- echo "Usage: $0 {test|dist|clean}"
+ echo "Usage: $0 {test|dist|clean|interop-data-generate|interop-data-test}"
exit 1
}
@@ -51,10 +51,16 @@ case "$target" in
rm -rf userlogs/
;;
+ interop-data-generate)
+ ant interop-data-generate
+ ;;
+
+ interop-data-test)
+ ant interop-data-test
+ ;;
+
*)
usage
esac
done
-
-exit 0
diff --git a/lang/py3/build.sh b/lang/py3/build.sh
index fdb457aaa..c8c5312ca 100755
--- a/lang/py3/build.sh
+++ b/lang/py3/build.sh
@@ -18,7 +18,7 @@
set -e # exit on error
function usage {
- echo "Usage: $0 {test|dist|clean}"
+ echo "Usage: $0 {test|dist|clean|interop-data-generate|interop-data-test}"
exit 1
}
@@ -56,10 +56,16 @@ case "$target" in
do_clean
;;
+ interop-data-generate)
+ echo "Not (yet) implemented"
+ ;;
+
+ interop-data-test)
+ echo "Not (yet) implemented"
+ ;;
+
*)
usage
esac
done
-
-exit 0
diff --git a/lang/ruby/build.sh b/lang/ruby/build.sh
index ed8a61e4b..aa0ee4b3c 100755
--- a/lang/ruby/build.sh
+++ b/lang/ruby/build.sh
@@ -42,10 +42,16 @@ case "$1" in
rm -rf tmp avro.gemspec data.avr
;;
+ interop-data-generate)
+ rake generate_interop
+ ;;
+
+ interop-data-test)
+ rake interop
+ ;;
+
*)
- echo "Usage: $0 {test|dist|clean}"
+ echo "Usage: $0
{test|dist|clean|interop-data-generate|interop-data-test}"
exit 1
esac
-
-exit 0
diff --git a/pom.xml b/pom.xml
index e3f48442c..12ce9eafb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -299,6 +299,7 @@
<exclude>lang/csharp/TestResult.xml</exclude>
<exclude>lang/csharp/src/apache/*/obj/**/*.csproj.FilesWrittenAbsolute.txt</exclude>
<exclude>lang/js/coverage/**</exclude>
+ <exclude>.dockerignore</exclude>
<!-- text documentation files -->
<exclude>CHANGES.txt</exclude>
<exclude>DIST_README.txt</exclude>
diff --git a/share/docker/Dockerfile b/share/docker/Dockerfile
index de09220a1..12263436e 100644
--- a/share/docker/Dockerfile
+++ b/share/docker/Dockerfile
@@ -19,7 +19,7 @@
FROM java:8-jdk
-WORKDIR /root
+WORKDIR /avro/
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
@@ -105,4 +105,4 @@ RUN gem install echoe yajl-ruby multi_json snappy
# Install global Node modules
RUN npm install -g grunt-cli
-CMD ["/avro/share/docker/run-tests.sh"]
+CMD ["./build.sh", "test"]
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> Ability to test using a Docker image
> ------------------------------------
>
> Key: AVRO-2229
> URL: https://issues.apache.org/jira/browse/AVRO-2229
> Project: Apache Avro
> Issue Type: Improvement
> Affects Versions: 1.8.2
> Reporter: Fokko Driesprong
> Assignee: Fokko Driesprong
> Priority: Major
> Fix For: 1.9.0
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)