From 9878da1ba3b3fcb541099f85ec4231349ed937fa Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Wed, 2 Nov 2022 14:38:22 -0400 Subject: [PATCH 1/9] Test enabling CodeQL --- build-tools/automation/azure-pipelines.yaml | 2 ++ build-tools/automation/yaml-templates/commercial-build.yaml | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index d123165a8e6..b0ea8be3494 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -102,6 +102,8 @@ stages: demands: macOS.Name -equals Monterey timeoutInMinutes: 240 cancelTimeoutInMinutes: 5 + variables: + Codeql.Enabled: true workspace: clean: all steps: diff --git a/build-tools/automation/yaml-templates/commercial-build.yaml b/build-tools/automation/yaml-templates/commercial-build.yaml index d886be39e67..b783be6fbdf 100644 --- a/build-tools/automation/yaml-templates/commercial-build.yaml +++ b/build-tools/automation/yaml-templates/commercial-build.yaml @@ -41,6 +41,9 @@ steps: workingDirectory: ${{ parameters.xaSourcePath }} displayName: delete legacy xamarin-android submodule +- task: CodeQL3000Init@0 + displayName: 'CodeQL 3000 Init' + - script: make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration) workingDirectory: ${{ parameters.xaSourcePath }} displayName: make prepare-external-git-dependencies @@ -140,6 +143,9 @@ steps: artifactName: $(InstallerArtifactName) targetPath: ${{ parameters.xaSourcePath }}/bin/Build$(XA.Build.Configuration)/$(InstallerArtifactName) +- task: CodeQL3000Finalize@0 + displayName: 'CodeQL 3000 Finalize' + # Upload test assemblies - script: > cp -r bin/$(XA.Build.Configuration)/bcl-tests bin/Test$(XA.Build.Configuration)/bcl-tests && From 270424741b4c1d63a75a8416541c8f88553fba64 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Wed, 2 Nov 2022 15:45:29 -0400 Subject: [PATCH 2/9] Make external/monodroid and external/java.interop build targets consistent --- build-tools/scripts/BuildEverything.mk | 2 +- build-tools/scripts/DotNet.targets | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build-tools/scripts/BuildEverything.mk b/build-tools/scripts/BuildEverything.mk index 71604445d00..776e6f90b96 100644 --- a/build-tools/scripts/BuildEverything.mk +++ b/build-tools/scripts/BuildEverything.mk @@ -20,7 +20,7 @@ else endif ifneq ("$(wildcard $(topdir)/external/monodroid/Makefile)","") cd $(topdir)/external/monodroid && ./configure --with-xamarin-android='$(topdir)' - $(call SYSTEM_DOTNET_BINLOG,build-commercial) $(SOLUTION) -t:BuildExternal --no-restore + $(call DOTNET_BINLOG,build-commercial) $(SOLUTION) -t:BuildExternal endif $(MAKE) leeroy diff --git a/build-tools/scripts/DotNet.targets b/build-tools/scripts/DotNet.targets index 1aae6db4c3e..9a8908852bd 100644 --- a/build-tools/scripts/DotNet.targets +++ b/build-tools/scripts/DotNet.targets @@ -4,14 +4,14 @@ <_BinlogDateTime>$([System.DateTime]::Now.ToString("yyyyMMddTHHmmss")) - From b8c3d734ec71c3b0271fa8a44cbfc20924486673 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Wed, 2 Nov 2022 17:11:02 -0400 Subject: [PATCH 3/9] Use unix path with exec --- build-tools/scripts/DotNet.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-tools/scripts/DotNet.targets b/build-tools/scripts/DotNet.targets index 9a8908852bd..8ca77ad9fcc 100644 --- a/build-tools/scripts/DotNet.targets +++ b/build-tools/scripts/DotNet.targets @@ -5,7 +5,7 @@ From 2bb03c4db0a0d04d406b9726c454f44cf40dc627 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Mon, 7 Nov 2022 17:57:13 -0500 Subject: [PATCH 4/9] Always run finalize --- build-tools/automation/yaml-templates/commercial-build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/build-tools/automation/yaml-templates/commercial-build.yaml b/build-tools/automation/yaml-templates/commercial-build.yaml index b783be6fbdf..3296bdd3c3c 100644 --- a/build-tools/automation/yaml-templates/commercial-build.yaml +++ b/build-tools/automation/yaml-templates/commercial-build.yaml @@ -145,6 +145,7 @@ steps: - task: CodeQL3000Finalize@0 displayName: 'CodeQL 3000 Finalize' + condition: succeededOrFailed() # Upload test assemblies - script: > From 0cf1d9d550db327c87b0f9839687d3f9df438337 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Tue, 8 Nov 2022 12:47:16 -0500 Subject: [PATCH 5/9] Only run CodeQL on nightly main builds --- build-tools/automation/azure-pipelines-nightly.yaml | 1 + .../automation/yaml-templates/commercial-build.yaml | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/build-tools/automation/azure-pipelines-nightly.yaml b/build-tools/automation/azure-pipelines-nightly.yaml index 9eed588b0a4..932f283ce02 100644 --- a/build-tools/automation/azure-pipelines-nightly.yaml +++ b/build-tools/automation/azure-pipelines-nightly.yaml @@ -50,6 +50,7 @@ stages: - template: yaml-templates/commercial-build.yaml parameters: makeMSBuildArgs: /p:EnableRoslynAnalyzers=true /p:EnableNativeAnalyzers=true + runCodeQL: true - template: yaml-templates/upload-results.yaml parameters: diff --git a/build-tools/automation/yaml-templates/commercial-build.yaml b/build-tools/automation/yaml-templates/commercial-build.yaml index 3296bdd3c3c..96ccdeb4e20 100644 --- a/build-tools/automation/yaml-templates/commercial-build.yaml +++ b/build-tools/automation/yaml-templates/commercial-build.yaml @@ -3,6 +3,7 @@ parameters: makeMSBuildArgs: '' provisionatorChannel: latest signClassicPkgContent: true + runCodeQL: false steps: - script: echo "##vso[task.setvariable variable=JI_JAVA_HOME]$HOME/android-toolchain/jdk-11" @@ -42,7 +43,8 @@ steps: displayName: delete legacy xamarin-android submodule - task: CodeQL3000Init@0 - displayName: 'CodeQL 3000 Init' + displayName: CodeQL 3000 Init + condition: and(succeeded(), eq('${{ parameters.runCodeQL }}', 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) - script: make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration) workingDirectory: ${{ parameters.xaSourcePath }} @@ -53,6 +55,10 @@ steps: workingDirectory: ${{ parameters.xaSourcePath }} displayName: make jenkins +- task: CodeQL3000Finalize@0 + displayName: CodeQL 3000 Finalize + condition: and(succeededOrFailed(), eq('${{ parameters.runCodeQL }}', 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) + # Build test assemblies - script: make all-tests CONFIGURATION=$(XA.Build.Configuration) workingDirectory: ${{ parameters.xaSourcePath }} @@ -143,10 +149,6 @@ steps: artifactName: $(InstallerArtifactName) targetPath: ${{ parameters.xaSourcePath }}/bin/Build$(XA.Build.Configuration)/$(InstallerArtifactName) -- task: CodeQL3000Finalize@0 - displayName: 'CodeQL 3000 Finalize' - condition: succeededOrFailed() - # Upload test assemblies - script: > cp -r bin/$(XA.Build.Configuration)/bcl-tests bin/Test$(XA.Build.Configuration)/bcl-tests && From a6354a71a717d7a808bd14803ba3d780bec87953 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Tue, 8 Nov 2022 12:47:44 -0500 Subject: [PATCH 6/9] Test this branch --- build-tools/automation/yaml-templates/commercial-build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build-tools/automation/yaml-templates/commercial-build.yaml b/build-tools/automation/yaml-templates/commercial-build.yaml index 96ccdeb4e20..10c42df9d57 100644 --- a/build-tools/automation/yaml-templates/commercial-build.yaml +++ b/build-tools/automation/yaml-templates/commercial-build.yaml @@ -44,7 +44,7 @@ steps: - task: CodeQL3000Init@0 displayName: CodeQL 3000 Init - condition: and(succeeded(), eq('${{ parameters.runCodeQL }}', 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) + condition: and(succeeded(), eq('${{ parameters.runCodeQL }}', 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/dev/pjc/cql')) - script: make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration) workingDirectory: ${{ parameters.xaSourcePath }} @@ -57,7 +57,7 @@ steps: - task: CodeQL3000Finalize@0 displayName: CodeQL 3000 Finalize - condition: and(succeededOrFailed(), eq('${{ parameters.runCodeQL }}', 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) + condition: and(succeededOrFailed(), eq('${{ parameters.runCodeQL }}', 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/dev/pjc/cql')) # Build test assemblies - script: make all-tests CONFIGURATION=$(XA.Build.Configuration) From 7e8b0a87fc3004ffd8cc623597a082271d7ea9bf Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Tue, 8 Nov 2022 12:51:16 -0500 Subject: [PATCH 7/9] Condition off variable value --- build-tools/automation/azure-pipelines-nightly.yaml | 3 ++- build-tools/automation/azure-pipelines.yaml | 2 -- build-tools/automation/yaml-templates/commercial-build.yaml | 5 ++--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/build-tools/automation/azure-pipelines-nightly.yaml b/build-tools/automation/azure-pipelines-nightly.yaml index 932f283ce02..f6e3f3b00c5 100644 --- a/build-tools/automation/azure-pipelines-nightly.yaml +++ b/build-tools/automation/azure-pipelines-nightly.yaml @@ -43,6 +43,8 @@ stages: - group: Xamarin-Secrets - group: Xamarin Signing - group: xamops-azdev-secrets + - name: Codeql.Enabled + value: true steps: - checkout: self submodules: recursive @@ -50,7 +52,6 @@ stages: - template: yaml-templates/commercial-build.yaml parameters: makeMSBuildArgs: /p:EnableRoslynAnalyzers=true /p:EnableNativeAnalyzers=true - runCodeQL: true - template: yaml-templates/upload-results.yaml parameters: diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index b0ea8be3494..d123165a8e6 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -102,8 +102,6 @@ stages: demands: macOS.Name -equals Monterey timeoutInMinutes: 240 cancelTimeoutInMinutes: 5 - variables: - Codeql.Enabled: true workspace: clean: all steps: diff --git a/build-tools/automation/yaml-templates/commercial-build.yaml b/build-tools/automation/yaml-templates/commercial-build.yaml index 10c42df9d57..23abec76564 100644 --- a/build-tools/automation/yaml-templates/commercial-build.yaml +++ b/build-tools/automation/yaml-templates/commercial-build.yaml @@ -3,7 +3,6 @@ parameters: makeMSBuildArgs: '' provisionatorChannel: latest signClassicPkgContent: true - runCodeQL: false steps: - script: echo "##vso[task.setvariable variable=JI_JAVA_HOME]$HOME/android-toolchain/jdk-11" @@ -44,7 +43,7 @@ steps: - task: CodeQL3000Init@0 displayName: CodeQL 3000 Init - condition: and(succeeded(), eq('${{ parameters.runCodeQL }}', 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/dev/pjc/cql')) + condition: and(succeeded(), eq(variables['Codeql.Enabled'], 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/dev/pjc/cql')) - script: make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration) workingDirectory: ${{ parameters.xaSourcePath }} @@ -57,7 +56,7 @@ steps: - task: CodeQL3000Finalize@0 displayName: CodeQL 3000 Finalize - condition: and(succeededOrFailed(), eq('${{ parameters.runCodeQL }}', 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/dev/pjc/cql')) + condition: and(succeededOrFailed(), eq(variables['Codeql.Enabled'], 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/dev/pjc/cql')) # Build test assemblies - script: make all-tests CONFIGURATION=$(XA.Build.Configuration) From 2bc62cd8a82590c4891315949dbdaa106810894b Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Tue, 8 Nov 2022 16:30:23 -0500 Subject: [PATCH 8/9] Update nightly timeouts --- build-tools/automation/azure-pipelines-nightly.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/build-tools/automation/azure-pipelines-nightly.yaml b/build-tools/automation/azure-pipelines-nightly.yaml index f6e3f3b00c5..71a7b1e294b 100644 --- a/build-tools/automation/azure-pipelines-nightly.yaml +++ b/build-tools/automation/azure-pipelines-nightly.yaml @@ -35,8 +35,7 @@ stages: pool: name: VSEng-Xamarin-RedmondMac-Android-Untrusted demands: macOS.Name -equals Monterey - timeoutInMinutes: 240 - cancelTimeoutInMinutes: 5 + timeoutInMinutes: 360 workspace: clean: all variables: @@ -69,7 +68,6 @@ stages: - job: emulator_tests displayName: macOS > Tests > APKs (Emulator) timeoutInMinutes: 180 - cancelTimeoutInMinutes: 2 strategy: matrix: Android21-x86: From 0ca257dcdf5f065a9dd440b917954c76b060ecf5 Mon Sep 17 00:00:00 2001 From: Peter Collins Date: Thu, 10 Nov 2022 18:23:16 -0500 Subject: [PATCH 9/9] Revert testing changes --- build-tools/automation/azure-pipelines-nightly.yaml | 2 +- build-tools/automation/yaml-templates/commercial-build.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build-tools/automation/azure-pipelines-nightly.yaml b/build-tools/automation/azure-pipelines-nightly.yaml index dadee54e092..a1c876a8484 100644 --- a/build-tools/automation/azure-pipelines-nightly.yaml +++ b/build-tools/automation/azure-pipelines-nightly.yaml @@ -35,7 +35,7 @@ stages: pool: name: VSEng-Xamarin-RedmondMac-Android-Untrusted demands: macOS.Name -equals Monterey - timeoutInMinutes: 360 + timeoutInMinutes: 420 workspace: clean: all variables: diff --git a/build-tools/automation/yaml-templates/commercial-build.yaml b/build-tools/automation/yaml-templates/commercial-build.yaml index 23abec76564..76b29f8b5b7 100644 --- a/build-tools/automation/yaml-templates/commercial-build.yaml +++ b/build-tools/automation/yaml-templates/commercial-build.yaml @@ -43,7 +43,7 @@ steps: - task: CodeQL3000Init@0 displayName: CodeQL 3000 Init - condition: and(succeeded(), eq(variables['Codeql.Enabled'], 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/dev/pjc/cql')) + condition: and(succeeded(), eq(variables['Codeql.Enabled'], 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) - script: make prepare-external-git-dependencies PREPARE_CI=1 CONFIGURATION=$(XA.Build.Configuration) workingDirectory: ${{ parameters.xaSourcePath }} @@ -56,7 +56,7 @@ steps: - task: CodeQL3000Finalize@0 displayName: CodeQL 3000 Finalize - condition: and(succeededOrFailed(), eq(variables['Codeql.Enabled'], 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/dev/pjc/cql')) + condition: and(succeededOrFailed(), eq(variables['Codeql.Enabled'], 'true'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) # Build test assemblies - script: make all-tests CONFIGURATION=$(XA.Build.Configuration)