diff --git a/.azure-pipelines/client.test.yml b/.azure-pipelines/client.test.yml new file mode 100644 index 0000000000000..24b2a548f7329 --- /dev/null +++ b/.azure-pipelines/client.test.yml @@ -0,0 +1,23 @@ +parameters: + name: '' + vmImage: '' + +jobs: +- job: ${{ format('Test_{0}', parameters.name) }} + + pool: + vmImage: ${{ parameters.vmImage }} + + steps: + - task: Maven@3 + displayName: 'Run tests' + inputs: + mavenPomFile: 'pom.client.build.xml' + options: '--batch-mode' #hides dependencies download progress from CI output + mavenOptions: '-Xmx3072m -Dorg.slf4j.simpleLogger.defaultLogLevel=error -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn' + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + publishJUnitResults: true + testResultsFiles: '**/TEST-*.xml' + goals: 'test' diff --git a/.azure-pipelines/client.yml b/.azure-pipelines/client.yml new file mode 100644 index 0000000000000..c59bead812dc1 --- /dev/null +++ b/.azure-pipelines/client.yml @@ -0,0 +1,51 @@ +trigger: +- master + +jobs: +- template: client.test.yml + parameters: + name: Linux + vmImage: 'ubuntu-16.04' + +- template: client.test.yml + parameters: + name: macOS + vmImage: 'macOS-10.13' + +- template: client.test.yml + parameters: + name: Windows + vmImage: 'vs2017-win2016' + +- job: 'Publish' + + dependsOn: + - 'Test_Linux' + - 'Test_macOS' + - 'Test_Windows' + + pool: + vmImage: 'ubuntu-16.04' + + steps: + - task: Maven@3 + inputs: + mavenPomFile: 'pom.client.build.xml' + options: '--batch-mode' #hides dependencies download progress from CI output + mavenOptions: '-Xmx3072m -Dmaven.test.skip=true -Dorg.slf4j.simpleLogger.defaultLogLevel=error -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn' + javaHomeOption: 'JDKVersion' + jdkVersionOption: '1.8' + jdkArchitectureOption: 'x64' + publishJUnitResults: false + goals: 'package' + displayName: 'Package' + + - task: CopyFiles@2 + inputs: + contents: '**/*.jar' + targetFolder: $(Build.ArtifactStagingDirectory) + flattenFolders: true + displayName: 'Copy' + + - task: PublishBuildArtifacts@1 + displayName: 'Publish' diff --git a/pom.client.build.xml b/pom.client.build.xml new file mode 100644 index 0000000000000..d0a1dc8c2df84 --- /dev/null +++ b/pom.client.build.xml @@ -0,0 +1,22 @@ + + 4.0.0 + + com.microsoft.azure + azure-sdk-parent + 1.0-SNAPSHOT + ./pom.client.xml + + + azure-sdk-parent-build + ${parent.version} + pom + + Microsoft Azure SDK Build + This package bundles all the SDKs in a multi-module for build/CI purposes. + https://github.com/Azure/azure-sdk-for-java + + + ./template/client + + diff --git a/pom.client.xml b/pom.client.xml new file mode 100644 index 0000000000000..60222bd17f4f1 --- /dev/null +++ b/pom.client.xml @@ -0,0 +1,41 @@ + + 4.0.0 + com.microsoft.azure + azure-sdk-parent + pom + 1.0-SNAPSHOT + + Microsoft Azure SDK Parent + This package contains the parent module of Microsoft Azure SDK. + https://github.com/Azure/azure-sdk-for-java + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 1.8 + 1.8 + true + true + -Xlint:unchecked + + + + + + + + + junit + junit + 4.12 + test + + + + + diff --git a/template/client/README.md b/template/client/README.md new file mode 100644 index 0000000000000..97562a72e63e7 --- /dev/null +++ b/template/client/README.md @@ -0,0 +1,3 @@ +# Azure Template + +This project provides a starter template for a Java client package. diff --git a/template/client/pom.xml b/template/client/pom.xml new file mode 100644 index 0000000000000..68c4478902dba --- /dev/null +++ b/template/client/pom.xml @@ -0,0 +1,25 @@ + + 4.0.0 + + + com.microsoft.azure + azure-sdk-parent + 1.0-SNAPSHOT + ../../pom.client.xml + + + azure-sdk-template + jar + + Microsoft Azure SDK for Template + This package contains Microsoft Azure SDK for Template. + + + + junit + junit + test + + + diff --git a/template/client/src/main/java/com/microsoft/azure/template/Hello.java b/template/client/src/main/java/com/microsoft/azure/template/Hello.java new file mode 100644 index 0000000000000..a8d495a8abd35 --- /dev/null +++ b/template/client/src/main/java/com/microsoft/azure/template/Hello.java @@ -0,0 +1,12 @@ +/** + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + */ +package com.microsoft.azure.template; + +public class Hello { + public String getMessage() { + return "hello"; + } +} diff --git a/template/client/src/test/java/com/microsoft/azure/template/HelloTest.java b/template/client/src/test/java/com/microsoft/azure/template/HelloTest.java new file mode 100644 index 0000000000000..0bcf2265d0ae1 --- /dev/null +++ b/template/client/src/test/java/com/microsoft/azure/template/HelloTest.java @@ -0,0 +1,17 @@ +/** + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + */ +package com.microsoft.azure.template; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class HelloTest { + @Test + public void testMessage() { + assertEquals("hello", (new Hello()).getMessage()); + } +}