diff --git a/eng/ci/official-build.yml b/eng/ci/official-build.yml index 18fa8b6..7787717 100644 --- a/eng/ci/official-build.yml +++ b/eng/ci/official-build.yml @@ -57,6 +57,8 @@ extends: - stage: BuildAndTest jobs: - - template: /eng/ci/templates/official/jobs/build-and-test.yml@self + - template: /eng/ci/templates/jobs/build-and-test.yml@self parameters: + jobName: Build_And_Test_Java_Library_Windows + displayName: Build and test Java library runEndToEndTests: ${{ and(ne(variables['Build.Reason'], 'Schedule'), parameters.runEndToEndTests) }} \ No newline at end of file diff --git a/eng/ci/public-build.yml b/eng/ci/public-build.yml index 53bd65f..f56f10a 100644 --- a/eng/ci/public-build.yml +++ b/eng/ci/public-build.yml @@ -51,5 +51,5 @@ extends: - stage: Build jobs: - - template: /eng/ci/templates/jobs/build.yml@self + - template: /eng/ci/templates/jobs/build-and-test.yml@self diff --git a/eng/ci/templates/official/jobs/build-and-test.yml b/eng/ci/templates/jobs/build-and-test.yml similarity index 70% rename from eng/ci/templates/official/jobs/build-and-test.yml rename to eng/ci/templates/jobs/build-and-test.yml index 969a4be..6af634f 100644 --- a/eng/ci/templates/official/jobs/build-and-test.yml +++ b/eng/ci/templates/jobs/build-and-test.yml @@ -1,19 +1,18 @@ parameters: + - name: jobName + type: string + default: Build + - name: displayName + type: string + default: Build java core library - name: runEndToEndTests type: boolean - default: true - displayName: "Run end-to-end tests" + default: false + displayName: Run end-to-end tests jobs: - - job: "Build_And_Test_Java_Library_Windows" - - pool: - name: 1es-pool-azfunc - image: 1es-windows-2022 - os: windows - - variables: - ApplicationInsightAgentVersion: 3.5.2 + - job: ${{ parameters.jobName }} + displayName: ${{ parameters.displayName }} steps: - task: npmAuthenticate@0 @@ -34,6 +33,13 @@ jobs: inputs: artifactsFeeds: upstream-public + - task: JavaToolInstaller@0 + inputs: + versionSpec: '11' + jdkArchitectureOption: 'x64' + jdkSourceOption: 'PreInstalled' + displayName: 'Setup Java 11' + - pwsh: | Write-Host "Java_HOME: $env:JAVA_HOME" Get-Command mvn @@ -41,18 +47,39 @@ jobs: - task: UseDotNet@2 displayName: 'Install .NET 6' + condition: eq(${{ parameters.runEndToEndTests }}, true) inputs: version: 6.0.x - + - pwsh: '& .\build.ps1' env: NPM_CONFIG_USERCONFIG: '$(Build.SourcesDirectory)\.npmrc' - displayName: 'Build project with java core library' + displayName: 'Build Java 11 libraries' + + - task: JavaToolInstaller@0 + inputs: + versionSpec: '17' + jdkArchitectureOption: 'x64' + jdkSourceOption: 'PreInstalled' + displayName: 'Setup Java 17' - pwsh: | - $currDir = Get-Location - $Env:Path = $Env:Path+";$currDir\Azure.Functions.Cli" - ls $currDir\Azure.Functions.Cli + cd azure-functions-java-mcp + mvn clean install "-Dgpg.skip=true" -B + displayName: 'Build Java 17 libraries' + + - task: JavaToolInstaller@0 + inputs: + versionSpec: '8' + jdkArchitectureOption: 'x64' + jdkSourceOption: 'PreInstalled' + displayName: 'Setup Java 8 for E2E' + condition: eq(${{ parameters.runEndToEndTests }}, true) + + - pwsh: | + $currDir = Get-Location + $Env:Path = $Env:Path + ";$currDir\Azure.Functions.Cli" + Get-ChildItem $currDir\Azure.Functions.Cli func --version cd ./azure-functions-java-worker/emulatedtests mvn clean package `-Dmaven`.javadoc`.skip=true `-Dmaven`.test`.skip `-Dorg`.slf4j`.simpleLogger`.log`.org`.apache`.maven`.cli`.transfer`.Slf4jMavenTransferListener=warn `-B @@ -96,4 +123,3 @@ jobs: JAVA_HOME: $(JAVA_HOME_8_X64) displayName: 'Build & Run tests for java 8' condition: eq(${{ parameters.runEndToEndTests }}, true) - diff --git a/eng/ci/templates/jobs/build.yml b/eng/ci/templates/jobs/build.yml deleted file mode 100644 index 1905d79..0000000 --- a/eng/ci/templates/jobs/build.yml +++ /dev/null @@ -1,52 +0,0 @@ -jobs: - - job: "Build" - displayName: 'Build java core library' - - pool: - name: 1es-pool-azfunc-public - image: 1es-windows-2022 - os: windows - - steps: - - task: npmAuthenticate@0 - inputs: - workingFile: '$(Build.SourcesDirectory)\.npmrc' - displayName: 'Authenticate to CFS npm feed' - - # Maven resolves plugins and extensions before a pom's repositories are honored. Install the - # mirror before MavenAuthenticate@0, which adds credentials to the same settings file. - - pwsh: | - $m2 = Join-Path $HOME '.m2' - New-Item -ItemType Directory -Path $m2 -Force | Out-Null - Copy-Item '$(Build.SourcesDirectory)/settings.xml' (Join-Path $m2 'settings.xml') -Force - displayName: 'Install Maven settings.xml' - - - task: MavenAuthenticate@0 - displayName: 'Authenticate Maven to CFS' - inputs: - artifactsFeeds: upstream-public - - - task: JavaToolInstaller@0 - inputs: - versionSpec: '11' - jdkArchitectureOption: 'x64' - jdkSourceOption: 'PreInstalled' - displayName: 'Setup Java 11' - - pwsh: | - Write-Host "Java_HOME: $JAVA_HOME" - Get-Command mvn - displayName: 'Check Maven is installed' - - pwsh: '& .\build.ps1' - env: - NPM_CONFIG_USERCONFIG: '$(Build.SourcesDirectory)\.npmrc' - displayName: 'Build Java 11 libraries' - - task: JavaToolInstaller@0 - inputs: - versionSpec: '17' - jdkArchitectureOption: 'x64' - jdkSourceOption: 'PreInstalled' - displayName: 'Setup Java 17' - - pwsh: | - cd azure-functions-java-mcp - mvn clean install "-Dgpg.skip=true" -B - displayName: 'Build Java 17 libraries'