vsts/sdl.yaml (67 lines of code) (raw):

name: $(BuildID)_$(BuildDefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r) resources: - repo: self clean: true jobs: ### SDL Tasks ### - job: SDL displayName: SDL Tasks condition: succeeded() pool: vmImage: windows-latest timeoutInMinutes: 60 steps: - task: Maven@3 inputs: mavenPomFile: 'pom.xml' goals: 'install' # Need to install this to the local repo as the CG task doesn't build the project options: '-D"maven.test.skip=true" -D"maven.javadoc.skip=true"' # Don't run the unit tests or doc gen to save some time - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 displayName: 'Component Detection' inputs: alertWarningLevel: High failOnAlert: true - task: securedevelopmentteam.vss-secure-development-tools.build-task-credscan.CredScan@3 displayName: CredScan inputs: debugMode: false suppressionsFile: vsts/CredScanSuppressions.json ## Spotbugs doesn't have a false positive list, but instead recommends annotating the lines of code in question ## with annotations like @SuppressFBWarnings("MS_SHOULD_BE_FINAL") - powershell: ./vsts/spotbugs.ps1 displayName: 'Run Spotbugs' ## Semmle doesn't have a false positive list, but instead recommends marking the lines of code in question ## with "// lgtm" ## https://help.semmle.com/lgtm-enterprise/user/help/alert-suppression.html#suppresswarnings-annotation - task: Semmle@1 #Only run this step if it isn't a pull request. Semmle only needs to run nightly condition: ne(variables['Build.Reason'], 'PullRequest') env: SYSTEM_ACCESSTOKEN: $(System.AccessToken) inputs: toolVersion: 'Latest' sourceCodeDirectory: '$(Build.SourcesDirectory)' language: 'java' buildCommandsString: 'mvn clean install -DskipTests -T 2C --batch-mode -q' querySuite: 'Recommended' timeout: '1800' ram: '16384' addProjectDirToScanningExclusionList: true - task: securedevelopmentteam.vss-secure-development-tools.build-task-policheck.PoliCheck@2 displayName: PoliCheck inputs: targetType: F - task: AntiMalware@4 inputs: InputType: 'Basic' ScanType: 'CustomScan' FileDirPath: '$(Build.StagingDirectory)' TreatSignatureUpdateFailureAs: 'Warning' SignatureFreshness: 'UpToDate' TreatStaleSignatureAs: 'Error' - task: securedevelopmentteam.vss-secure-development-tools.build-task-publishsecurityanalysislogs.PublishSecurityAnalysisLogs@3 displayName: 'Publish Security Analysis Logs' - task: securedevelopmentteam.vss-secure-development-tools.build-task-postanalysis.PostAnalysis@2 displayName: 'Post Analysis' inputs: CredScan: true Semmle: true - task: securedevelopmentteam.vss-secure-development-tools.build-task-uploadtotsa.TSAUpload@2 displayName: 'TSA upload' inputs: GdnPublishTsaOnboard: false GdnPublishTsaConfigFile: '$(Build.SourcesDirectory)/vsts/TsaUploadConfigFile.json' GdnPublishTsaExportedResultsPublishable: true