diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 000000000..99b1caca7 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,165 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +trigger: + branches: + include: + - '*' # must quote since "*" is a YAML reserved character; we want a string + +pool: + vmImage: 'ubuntu-16.04' + +variables: + MAVEN_CACHE_FOLDER: $(Pipeline.Workspace)/.m2/repository + MAVEN_OPTS: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)' + SPARK_VERSION: '2.4.4' + HADOOP_VERSION: '2.7' + SPARK_HOME: $(Pipeline.Workspace)/spark-$(SPARK_VERSION)-bin-hadoop$(HADOOP_VERSION) + SKIP_IT: true + +stages: + - stage: test + displayName: "Run tests" + jobs: + - job: unit_tests_spark_client + steps: + - task: Maven@3 + inputs: + mavenPomFile: 'pom.xml' + goals: 'clean install' + options: -DskipTests + publishJUnitResults: false + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + mavenOptions: '-Xmx2g $(MAVEN_OPTS)' + - task: Cache@2 + inputs: + key: 'maven | "$(Agent.OS)" | **/pom.xml' + restoreKeys: | + maven | "$(Agent.OS)" + maven + path: $(MAVEN_CACHE_FOLDER) + displayName: Cache Maven local repo + - task: Maven@3 + inputs: + mavenPomFile: 'pom.xml' + goals: 'test' + options: -Pazp-unit-tests -pl hudi-client/hudi-spark-client + publishJUnitResults: false + testResultsFiles: '**/surefire-reports/TEST-*.xml' + testRunTitle: 'unit tests spark client' + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + mavenOptions: '-Xmx2g $(MAVEN_OPTS)' + - job: unit_tests_utilities + steps: + - task: Maven@3 + inputs: + mavenPomFile: 'pom.xml' + goals: 'clean install' + options: -DskipTests + publishJUnitResults: false + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + mavenOptions: '-Xmx2g $(MAVEN_OPTS)' + - task: Cache@2 + inputs: + key: 'maven | "$(Agent.OS)" | **/pom.xml' + restoreKeys: | + maven | "$(Agent.OS)" + maven + path: $(MAVEN_CACHE_FOLDER) + displayName: Cache Maven local repo + - task: Maven@3 + inputs: + mavenPomFile: 'pom.xml' + goals: 'test' + options: -Pazp-unit-tests -pl hudi-utilities + publishJUnitResults: false + testResultsFiles: '**/surefire-reports/TEST-*.xml' + testRunTitle: 'unit tests utilities' + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + mavenOptions: '-Xmx2g $(MAVEN_OPTS)' + - job: unit_tests_other_modules + steps: + - task: Maven@3 + inputs: + mavenPomFile: 'pom.xml' + goals: 'clean install' + options: -DskipTests + publishJUnitResults: false + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + mavenOptions: '-Xmx2g $(MAVEN_OPTS)' + - task: Cache@2 + inputs: + key: 'maven | "$(Agent.OS)" | **/pom.xml' + restoreKeys: | + maven | "$(Agent.OS)" + maven + path: $(MAVEN_CACHE_FOLDER) + displayName: Cache Maven local repo + - task: Maven@3 + inputs: + mavenPomFile: 'pom.xml' + goals: 'test' + options: -Pazp-unit-tests -pl !hudi-utilities,!hudi-client/hudi-spark-client + publishJUnitResults: false + testResultsFiles: '**/surefire-reports/TEST-*.xml' + testRunTitle: 'unit tests other modules' + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + mavenOptions: '-Xmx2g $(MAVEN_OPTS)' + - job: functional_tests + steps: + - task: Maven@3 + inputs: + mavenPomFile: 'pom.xml' + goals: 'test' + options: -Pfunctional-tests + publishJUnitResults: false + testResultsFiles: '**/surefire-reports/TEST-*.xml' + testRunTitle: 'functional tests' + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + mavenOptions: '-Xmx2g $(MAVEN_OPTS)' + - job: integration_tests + condition: eq(variables.SKIP_IT, false) + steps: + - script: | + echo 'Downloading spark-$(SPARK_VERSION)-bin-hadoop$(HADOOP_VERSION)' + wget http://archive.apache.org/dist/spark/spark-$(SPARK_VERSION)/spark-$(SPARK_VERSION)-bin-hadoop$(HADOOP_VERSION).tgz -O /tmp/spark-$(SPARK_VERSION).tgz + tar -xvf /tmp/spark-$(SPARK_VERSION).tgz + mkdir /tmp/spark-events/ + - task: Maven@3 + inputs: + mavenPomFile: 'pom.xml' + goals: 'verify' + options: -Pintegration-tests + publishJUnitResults: false + testResultsFiles: '**/surefire-reports/TEST-*.xml' + testRunTitle: 'unit tests utilities' + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + mavenOptions: '-Xmx2g $(MAVEN_OPTS)' diff --git a/pom.xml b/pom.xml index a80c113a2..569ce7b50 100644 --- a/pom.xml +++ b/pom.xml @@ -1249,6 +1249,40 @@ + + azp-unit-tests + + false + true + true + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} + + + + ${skipUTs} + 120 + functional + + **/*FunctionalTestSuite.java + **/IT*.java + **/testsuite/**/Test*.java + **/TestPushGateWayReporter.java + + + + + + javadocs