From 47570221a69e2761f626f7da0f6326081ba13912 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Thu, 5 Dec 2024 11:43:47 -0600 Subject: [PATCH 01/10] - add excludes for code ql - prevent end-to-end tests from running for codeql runs --- eng/ci/official-build.yml | 16 +++++++++++++++- .../templates/official/jobs/build-and-test.yml | 8 ++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/eng/ci/official-build.yml b/eng/ci/official-build.yml index b9759ea..0e9ab01 100644 --- a/eng/ci/official-build.yml +++ b/eng/ci/official-build.yml @@ -12,6 +12,12 @@ trigger: include: - dev +parameters: + - name: runEndToEndTests + type: boolean + default: true + displayName: "Run end-to-end tests" + # CI only, does not trigger on PRs. pr: none @@ -40,6 +46,14 @@ extends: stages: - stage: BuildAndTest + templateContext: + sdl: + codeql: + runSourceLanguagesInSourceAnalysis: true + buildIdentifier: java_additions_official + excludePathPatterns: '/extract,/azure-maven-archetypes,/azure-maven-plugins,/azure-functions-java-library' jobs: - - template: /eng/ci/templates/official/jobs/build-and-test.yml@self \ No newline at end of file + - template: /eng/ci/templates/official/jobs/build-and-test.yml@self + parameters: + runEndToEndTests: ${{ and(ne(variables['Build.Reason'], 'Schedule'), eq('${{ parameters.runEndToEndTests }}', true)) }} \ No newline at end of file diff --git a/eng/ci/templates/official/jobs/build-and-test.yml b/eng/ci/templates/official/jobs/build-and-test.yml index 8036f71..f61222e 100644 --- a/eng/ci/templates/official/jobs/build-and-test.yml +++ b/eng/ci/templates/official/jobs/build-and-test.yml @@ -1,3 +1,9 @@ +parameters: + - name: runEndToEndTests + type: boolean + default: true + displayName: "Run end-to-end tests" + jobs: - job: "Build_And_Test_Java_Library_Windows" @@ -37,6 +43,7 @@ jobs: mvn clean package `-Dmaven`.javadoc`.skip=true `-Dmaven`.test`.skip `-Dorg`.slf4j`.simpleLogger`.log`.org`.apache`.maven`.cli`.transfer`.Slf4jMavenTransferListener=warn `-B Copy-Item "confluent_cloud_cacert.pem" ".\target\azure-functions\azure-functions-java-endtoendtests" displayName: 'Package Java for E2E' + condition: eq('${{ parameters.runEndToEndTests }}', true) - task: DotNetCoreCLI@2 retryCountOnTaskFailure: 3 @@ -66,4 +73,5 @@ jobs: ApplicationInsightAPPID: $(ApplicationInsightAPPID) ApplicationInsightAgentVersion: $(ApplicationInsightAgentVersion) displayName: 'Build & Run tests for java 8' + condition: eq('${{ parameters.runEndToEndTests }}', true) \ No newline at end of file From 8de35283bdb4fd68ea82999bfce619f8568cf0f1 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Thu, 5 Dec 2024 11:47:36 -0600 Subject: [PATCH 02/10] add testing flag --- eng/ci/official-build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eng/ci/official-build.yml b/eng/ci/official-build.yml index 0e9ab01..5889548 100644 --- a/eng/ci/official-build.yml +++ b/eng/ci/official-build.yml @@ -43,6 +43,9 @@ extends: name: 1es-pool-azfunc image: 1es-windows-2022 os: windows + sdl: + codeql: + enabledOnNonDefaultBranches: true stages: - stage: BuildAndTest From 82d184eac7b7b96e72b25e27283ec24a94382543 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Thu, 5 Dec 2024 12:29:10 -0600 Subject: [PATCH 03/10] finalize changes --- eng/ci/official-build.yml | 5 +---- eng/ci/public-build.yml | 12 ++++++------ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/eng/ci/official-build.yml b/eng/ci/official-build.yml index 5889548..9bf9910 100644 --- a/eng/ci/official-build.yml +++ b/eng/ci/official-build.yml @@ -43,9 +43,6 @@ extends: name: 1es-pool-azfunc image: 1es-windows-2022 os: windows - sdl: - codeql: - enabledOnNonDefaultBranches: true stages: - stage: BuildAndTest @@ -53,7 +50,7 @@ extends: sdl: codeql: runSourceLanguagesInSourceAnalysis: true - buildIdentifier: java_additions_official + buildIdentifier: java_library_official excludePathPatterns: '/extract,/azure-maven-archetypes,/azure-maven-plugins,/azure-functions-java-library' jobs: diff --git a/eng/ci/public-build.yml b/eng/ci/public-build.yml index 1b049c6..61059ec 100644 --- a/eng/ci/public-build.yml +++ b/eng/ci/public-build.yml @@ -32,14 +32,14 @@ extends: image: 1es-windows-2022 os: windows - sdl: - codeql: - compiled: - enabled: true - runSourceLanguagesInSourceAnalysis: true - stages: - stage: Build + templateContext: + sdl: + codeql: + runSourceLanguagesInSourceAnalysis: true + buildIdentifier: java_library_public + excludePathPatterns: '/extract,/azure-maven-archetypes,/azure-maven-plugins,/azure-functions-java-library' jobs: - template: /eng/ci/templates/jobs/build.yml@self \ No newline at end of file From 85a8c367654167292f2634eec150abfc9620573b Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Mon, 9 Dec 2024 16:19:22 -0600 Subject: [PATCH 04/10] update condition logic and run emulated tests instead of e2e --- eng/ci/official-build.yml | 14 +++---- eng/ci/public-build.yml | 16 +++++--- .../official/jobs/build-and-test.yml | 41 +++++++------------ 3 files changed, 32 insertions(+), 39 deletions(-) diff --git a/eng/ci/official-build.yml b/eng/ci/official-build.yml index 9bf9910..56d70d7 100644 --- a/eng/ci/official-build.yml +++ b/eng/ci/official-build.yml @@ -35,6 +35,12 @@ resources: variables: - template: ci/variables/build.yml@eng - template: ci/variables/cfs.yml@eng + - name: codeql.language + value: java,powershell + - name: codeql.buildIdentifier + value: java_library_official + - name: codeql.excludePathPatterns + value: '/extract,/azure-maven-archetypes,/azure-maven-plugins,/azure-functions-java-worker' extends: template: v1/1ES.Official.PipelineTemplate.yml@1es @@ -46,14 +52,8 @@ extends: stages: - stage: BuildAndTest - templateContext: - sdl: - codeql: - runSourceLanguagesInSourceAnalysis: true - buildIdentifier: java_library_official - excludePathPatterns: '/extract,/azure-maven-archetypes,/azure-maven-plugins,/azure-functions-java-library' jobs: - template: /eng/ci/templates/official/jobs/build-and-test.yml@self parameters: - runEndToEndTests: ${{ and(ne(variables['Build.Reason'], 'Schedule'), eq('${{ parameters.runEndToEndTests }}', true)) }} \ No newline at end of file + 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 61059ec..939c408 100644 --- a/eng/ci/public-build.yml +++ b/eng/ci/public-build.yml @@ -24,6 +24,16 @@ resources: name: 1ESPipelineTemplates/1ESPipelineTemplates ref: refs/tags/release +variables: + - template: ci/variables/build.yml@eng + - template: ci/variables/cfs.yml@eng + - name: codeql.language + value: java,powershell + - name: codeql.buildIdentifier + value: java_library_public + - name: codeql.excludePathPatterns + value: '/extract,/azure-maven-archetypes,/azure-maven-plugins,/azure-functions-java-worker' + extends: template: v1/1ES.Unofficial.PipelineTemplate.yml@1es parameters: @@ -34,12 +44,6 @@ extends: stages: - stage: Build - templateContext: - sdl: - codeql: - runSourceLanguagesInSourceAnalysis: true - buildIdentifier: java_library_public - excludePathPatterns: '/extract,/azure-maven-archetypes,/azure-maven-plugins,/azure-functions-java-library' jobs: - template: /eng/ci/templates/jobs/build.yml@self \ No newline at end of file diff --git a/eng/ci/templates/official/jobs/build-and-test.yml b/eng/ci/templates/official/jobs/build-and-test.yml index f61222e..e304eec 100644 --- a/eng/ci/templates/official/jobs/build-and-test.yml +++ b/eng/ci/templates/official/jobs/build-and-test.yml @@ -22,7 +22,7 @@ jobs: displayName: 'Install NuGet Tool' - pwsh: | - Write-Host "Java_HOME: $JAVA_HOME" + Write-Host "Java_HOME: $env:JAVA_HOME" Get-Command mvn displayName: 'Check Maven is installed' @@ -39,39 +39,28 @@ jobs: $Env:Path = $Env:Path+";$currDir\Azure.Functions.Cli" ls $currDir\Azure.Functions.Cli func --version - cd ./azure-functions-java-worker/endtoendtests + 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 - Copy-Item "confluent_cloud_cacert.pem" ".\target\azure-functions\azure-functions-java-endtoendtests" + Copy-Item "confluent_cloud_cacert.pem" ".\target\azure-functions\azure-functions-java-emulatedtests" displayName: 'Package Java for E2E' - condition: eq('${{ parameters.runEndToEndTests }}', true) + condition: eq(${{ parameters.runEndToEndTests }}, true) + + - bash: | + npm install -g azurite + mkdir azurite + azurite --silent --location azurite --debug azurite\debug.log & + displayName: 'Install and Run Azurite' + condition: eq(${{ parameters.runEndToEndTests }}, true) - task: DotNetCoreCLI@2 retryCountOnTaskFailure: 3 inputs: command: 'test' projects: | - azure-functions-java-worker\endtoendtests\Azure.Functions.Java.Tests.E2E\Azure.Functions.Java.Tests.E2E\Azure.Functions.Java.Tests.E2E.csproj + azure-functions-java-worker/emulatedtests/Azure.Functions.Java.Tests.E2E/Azure.Functions.Java.Tests.E2E/Azure.Functions.Java.Tests.E2E.csproj env: - AzureWebJobsStorage: $(AzureWebJobsStorage) - AzureWebJobsCosmosDBConnectionString: $(AzureWebJobsCosmosDBConnectionString) - AzureWebJobsSqlConnectionString: $(AzureWebJobsSqlConnectionString) - AzureWebJobsServiceBus: $(AzureWebJobsServiceBus) - AzureWebJobsEventHubReceiver: $(AzureWebJobsEventHubReceiver) - AzureWebJobsEventHubSender_2: $(AzureWebJobsEventHubSender_2) - AzureWebJobsEventHubSender: $(AzureWebJobsEventHubSender) - AzureWebJobsEventHubPath: $(AzureWebJobsEventHubPath) - SBTopicName: $(SBTopicName) - SBTopicSubName: $(SBTopicSubName) - CosmosDBDatabaseName: $(CosmosDBDatabaseName) - SBQueueName: $(SBQueueName) - BrokerList": $(BrokerList) - ConfluentCloudUsername: $(ConfluentCloudUsername) - ConfluentCloudPassword: $(ConfluentCloudPassword) - AzureWebJobsEventGridOutputBindingTopicUriString: $(AzureWebJobsEventGridOutputBindingTopicUriString) - AzureWebJobsEventGridOutputBindingTopicKeyString: $(AzureWebJobsEventGridOutputBindingTopicKeyString) - ApplicationInsightAPIKey: $(ApplicationInsightAPIKey) - ApplicationInsightAPPID: $(ApplicationInsightAPPID) - ApplicationInsightAgentVersion: $(ApplicationInsightAgentVersion) + AzureWebJobsStorage: "UseDevelopmentStorage=true" + JAVA_HOME: $(JAVA_HOME_8_X64) displayName: 'Build & Run tests for java 8' - condition: eq('${{ parameters.runEndToEndTests }}', true) + condition: eq(${{ parameters.runEndToEndTests }}, true) \ No newline at end of file From 27b5bd2993b85b1a96878f7623c108803f698c1e Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Mon, 9 Dec 2024 16:20:14 -0600 Subject: [PATCH 05/10] update code owners --- CODEOWNERS | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index 4ac24ef..1f5094d 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -6,6 +6,5 @@ # https://blog.github.com/2017-07-06-introducing-code-owners/ # https://help.github.com/articles/about-codeowners/ -# Default owner for repo -* @pragnagopa -* @amamounelsayed \ No newline at end of file +# Default owners for repo +* @manvkaur @vrdmr @gavin-aguiar @hallvictoria @ahmedmuhsin \ No newline at end of file From c157b62b514f3a6572641554fada3ba9a0a0c23c Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Mon, 9 Dec 2024 16:32:40 -0600 Subject: [PATCH 06/10] remove extra vars --- eng/ci/public-build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/eng/ci/public-build.yml b/eng/ci/public-build.yml index 939c408..9376f48 100644 --- a/eng/ci/public-build.yml +++ b/eng/ci/public-build.yml @@ -25,8 +25,6 @@ resources: ref: refs/tags/release variables: - - template: ci/variables/build.yml@eng - - template: ci/variables/cfs.yml@eng - name: codeql.language value: java,powershell - name: codeql.buildIdentifier From 6c270cb3205f8d4e394d224c50c7ee851a4c3665 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Mon, 9 Dec 2024 16:43:40 -0600 Subject: [PATCH 07/10] fix sdl job --- eng/ci/public-build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/eng/ci/public-build.yml b/eng/ci/public-build.yml index 9376f48..67bce6b 100644 --- a/eng/ci/public-build.yml +++ b/eng/ci/public-build.yml @@ -40,6 +40,10 @@ extends: image: 1es-windows-2022 os: windows + settings: + # PR's from forks do not have sufficient permissions to set tags. + skipBuildTagsForGitHubPullRequests: ${{ variables['System.PullRequest.IsFork'] }} + stages: - stage: Build From c3c482273989a57862b4c55165653d1a04a56791 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Mon, 9 Dec 2024 17:56:09 -0600 Subject: [PATCH 08/10] modify code owners --- CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index 1f5094d..ec766c4 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -7,4 +7,4 @@ # https://help.github.com/articles/about-codeowners/ # Default owners for repo -* @manvkaur @vrdmr @gavin-aguiar @hallvictoria @ahmedmuhsin \ No newline at end of file +* @Azure/azure-functions-java-worker-admins \ No newline at end of file From c11d855ac132bc994acf36668374084cf40385d8 Mon Sep 17 00:00:00 2001 From: Ahmed Muhsin Date: Tue, 10 Dec 2024 11:32:16 -0600 Subject: [PATCH 09/10] fix code owners --- CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index ec766c4..b85422b 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -7,4 +7,4 @@ # https://help.github.com/articles/about-codeowners/ # Default owners for repo -* @Azure/azure-functions-java-worker-admins \ No newline at end of file +* @azure/azure-functions-extensions-bundle-admins \ No newline at end of file From 455c9d890decad5159644f6c7d522d77d8c66296 Mon Sep 17 00:00:00 2001 From: Manvir Kaur <67894494+manvkaur@users.noreply.github.com> Date: Tue, 10 Dec 2024 10:59:58 -0800 Subject: [PATCH 10/10] Update CODEOWNERS default owners for repo azure-functions-java-worker-admins --- CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODEOWNERS b/CODEOWNERS index b85422b..564055c 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -7,4 +7,4 @@ # https://help.github.com/articles/about-codeowners/ # Default owners for repo -* @azure/azure-functions-extensions-bundle-admins \ No newline at end of file +* @azure/azure-functions-java-worker-admins \ No newline at end of file