Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/Xamarin.PropertyEditing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Cummings <mcumming@microsoft.com>2021-03-25 18:01:59 +0300
committerMichael Cummings <mcumming@microsoft.com>2021-03-26 15:35:04 +0300
commit30ba02a399103350ce40545099282d4499b1e12a (patch)
tree4ca4b1a751940a1730016a748f5bba67d386cc1a /azure-pipelines.yaml
parent1fd6c0b7f1221222bc93d0d509e267c64e19cb45 (diff)
Migrate to OneLocBuild
refactor build automation scripts
Diffstat (limited to 'azure-pipelines.yaml')
-rw-r--r--azure-pipelines.yaml251
1 files changed, 13 insertions, 238 deletions
diff --git a/azure-pipelines.yaml b/azure-pipelines.yaml
index 1266f00..4156c56 100644
--- a/azure-pipelines.yaml
+++ b/azure-pipelines.yaml
@@ -1,254 +1,29 @@
name: $(BuildID)
-variables:
-- name: HostedWinVS2019
- value: Hosted Windows 2019 with VS2019
-
trigger:
branches:
- include: [ main, d16-* ]
+ include: [ main, d16-*, d17-* ]
pr:
- autoCancel: true
+ autoCancel: 'true'
branches:
- include: [ main, d16-* ]
+ include: [ main, d16-*, d17-* ]
resources:
repositories:
- repository: self
- - repository: templates
+ - repository: templates # for shared yaml templates
type: github
name: xamarin/yaml-templates
ref: refs/heads/main
endpoint: xamarin
-stages:
- - stage: code_analysis
- displayName: Code Analysis
- jobs:
- # Check - "Code Analysis CredScan"
- - job: run_static_analysis
- displayName: CredScan
- pool: $(HostedWinVS2019)
- timeoutInMinutes: 60
- cancelTimeoutInMinutes: 5
- steps:
- - checkout: self
- - template: security/xa-static-analysis/v2.yml@templates
- parameters:
- credScanSuppressionsFile: $(System.DefaultWorkingDirectory)/CredScanSuppressions.json
-
- # Check - "Code Analysis Policheck Compliance"
- # For a full list of termType and the correct code refer to https://github.com/xamarin/yaml-templates/blob/master/security/policheck/v1.yml
- - job: run_policheck_compliance
- displayName: 'Policheck Compliance Source'
- pool: $(HostedWinVS2019)
- timeoutInMinutes: 60
- cancelTimeoutInMinutes: 5
- strategy:
- matrix:
- SourceCodeOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.xml'
- TERM_TYPE: '0029a9'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- CzechResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.cs.xml'
- TERM_TYPE: '0025a1029'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- GermanResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.de.xml'
- TERM_TYPE: '0036a1031'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- EnglishResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.en.xml'
- TERM_TYPE: '0029a9'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- SpanishResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.es.xml'
- TERM_TYPE: '0099a1034'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- FrenchResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.fr.xml'
- TERM_TYPE: '0033a1036'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- ItalianResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.it.xml'
- TERM_TYPE: '0051a1040'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- JapaneseResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.ja.xml'
- TERM_TYPE: '0052a1041'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- KoreanResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.ko.xml'
- TERM_TYPE: '0060a1042'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- PolishResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.pl.xml'
- TERM_TYPE: '0079a1045'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- PortugeseBrazilianResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.pt-br.xml'
- TERM_TYPE: '0080a1046'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- RussianResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.ru.xml'
- TERM_TYPE: '0087a1049'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- TurkeyResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.tr.xml'
- TERM_TYPE: '0107a1055'
- OPTIONS_PE: ''
- OPTIONS_RULES_DB_PATH: ''
- ChineseSimplifiedResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.zh-hans.xml'
- TERM_TYPE: '0021a2052'
- OPTIONS_PE: '1|2|3|4'
- OPTIONS_RULES_DB_PATH: '$(System.DefaultWorkingDirectory)\build\Rule-zh-all.mdb'
- ChineseTraditionalResourceOnly:
- EXCLUSION_FILE: '$(System.DefaultWorkingDirectory)\build\UserExclusion.zh-hant.xml'
- TERM_TYPE: '0022a3076'
- OPTIONS_PE: '1|2|3|4'
- OPTIONS_RULES_DB_PATH: '$(System.DefaultWorkingDirectory)\build\Rule-zh-all.mdb'
- steps:
- - checkout: self
- - template: security/policheck/v1.yml@templates
- parameters:
- exclusionFile: $(EXCLUSION_FILE)
- termType: $(TERM_TYPE)
- pE: $(OPTIONS_PE)
- rulesDBPath: $(OPTIONS_RULES_DB_PATH)
-
- - task: securedevelopmentteam.vss-secure-development-tools.build-task-uploadtotsa.TSAUpload@1
- displayName: 'TSA V2 upload to Xamarin.PropertyEditing_master'
- inputs:
- tsaVersion: TsaV2
- codeBaseName: 'Xamarin.PropertyEditing_master'
- uploadAPIScan: false
- uploadBinSkim: false
- uploadCredScan: false
- uploadFortifySCA: false
- uploadFxCop: false
- uploadModernCop: false
- uploadPREfast: false
- uploadRoslyn: false
- uploadTSLint: false
- validateCompatibility: Warning
- enabled: false
-
- - task: securedevelopmentteam.vss-secure-development-tools.build-task-postanalysis.PostAnalysis@1
- displayName: 'Post Analysis'
- inputs:
- AllTools: true
-
- - stage: Windows
- dependsOn: []
- jobs:
- - job: 'Build'
- pool:
- vmImage: 'windows-latest'
-
- steps:
- - checkout: self
- clean: true
- persistCredentials: true
-
- - task: MSBuild@1
- displayName: Build
- inputs:
- solution: build.proj
- msbuildVersion: "15.0"
- msbuildArguments: '/restore /p:Release=true /t:Build'
-
- - task: MSBuild@1
- displayName: 'Run Tests'
- inputs:
- solution: build.proj
- msbuildVersion: "15.0"
- msbuildArguments: '/p:Release=true /t:Test'
-
- - task: PublishTestResults@2
- displayName: 'Publish Test Results'
- inputs:
- testResultsFormat: NUnit
- testResultsFiles: '**/TestResult.xml'
- condition: succeededOrFailed()
-
- - stage: Mac
- dependsOn: []
- jobs:
- - job: 'Build'
- pool:
- vmImage: 'macOS-latest'
-
- steps:
- - checkout: self
- clean: true
- persistCredentials: true
-
- - task: NuGetAuthenticate@0
-
- - task: CmdLine@1
- displayName: 'Set Token'
- inputs:
- filename: echo
- arguments: '##vso[task.setvariable variable=GITHUB_TOKEN]$(GitHub.Token)'
- - task: MSBuild@1
- displayName: Build
- inputs:
- solution: build.proj
- msbuildVersion: "15.0"
- msbuildArguments: '/restore /p:Release=true /t:Build'
-
- - task: MSBuild@1
- displayName: 'Run Tests'
- inputs:
- solution: build.proj
- msbuildVersion: "15.0"
- msbuildArguments: '/p:Release=true /t:Test'
-
- - task: PublishTestResults@2
- displayName: 'Publish Test Results'
- inputs:
- testResultsFormat: NUnit
- testResultsFiles: '**/TestResult.xml'
- condition: succeededOrFailed()
+# Variables
+variables:
+- template: .build/automation/variables.yml
- - stage: UpdateTranslations
- dependsOn: ['Windows', 'Mac']
- condition: and( succeeded(), and( eq(variables['Build.Reason'], 'PullRequest'), eq( variables['System.PullRequest.SourceBranch'], 'loc') ) )
- jobs:
- - job : 'ValidateAndMerge'
- variables:
- pull_request_number: $(System.PullRequest.PullRequestNumber)
- steps:
- - powershell: |
- Write-Host "Validating translations for PR# $(System.PullRequest.PullRequestNumber)"
- $matches = Get-ChildItem -recurse -Path $(Build.SourcesDirectory) -Filter *.resx | Select-String -Pattern '\[.*\]\s\(https:.*\)' -AllMatches
- $matchCount = ($matches | Measure-Object -Line).Lines
- Write-Host "Found $matchCount violations."
- $matches | Write-Host
- if( ($matches | Measure-Object -Line).Lines -eq 0 ) {
- Write-Host "Quality Gate Succeeded."
- } else {
- throw "Quality Gate Failure : Check the logs for details."
- }
- displayName: 'Validate Markdown Urls'
- - task: github-merge-pr@1
- inputs:
- github_token: $(GitHub.Token)
- repository: 'xamarin/Xamarin.PropertyEditing'
- pr_number: $(pull_request_number)
- merge_method: 'merge'
- displayName: Merge PR# $(System.PullRequest.PullRequestNumber)
+stages:
+ - template: .build/automation/stages/validate.yml
+ - template: .build/automation/stages/security_compliance.yml
+ - template: .build/automation/stages/localization-handoff.yml # Process outgoing strings [Localization Handoff]
+ - template: .build/automation/stages/localization-handback.yml # Process incoming translations and Create PR to main [Localization Handback]
+ - template: .build/automation/stages/merge-translations-update.yml # Validating incoming translations strings and merge PR [Localization Handback]