98 строки
3.2 KiB
YAML
98 строки
3.2 KiB
YAML
pr:
|
|
branches:
|
|
include:
|
|
- main
|
|
|
|
variables:
|
|
Codeql.Enabled: true
|
|
|
|
stages:
|
|
- stage: security_compliance
|
|
displayName: 'Security & Compliance'
|
|
pool:
|
|
vmImage: 'windows-latest'
|
|
jobs:
|
|
- job: compliance
|
|
steps:
|
|
- task: PoliCheck@1
|
|
displayName: 'Run PoliCheck 🌎'
|
|
inputs:
|
|
inputType: 'Basic'
|
|
targetType: 'F'
|
|
targetArgument: '$(Build.SourcesDirectory)'
|
|
result: 'PoliCheck.xml'
|
|
optionsXS: 1
|
|
optionsPE: 1
|
|
optionsUEPATH: '$(Build.SourcesDirectory)/policheck/UserExclusion.xml'
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Create log artifact'
|
|
inputs:
|
|
pathToPublish: '..\_sdt\logs\PoliCheck\PoliCheck.xml'
|
|
artifactName: 'PoliCheck'
|
|
|
|
- job: security
|
|
steps:
|
|
- task: ESLint@1
|
|
displayName: 'Guardian: ESLint 🛡'
|
|
inputs:
|
|
Configuration: 'recommended'
|
|
TargetType: 'eslint'
|
|
TargetsESLint: |
|
|
$(Build.SourcesDirectory)/**/*.ts
|
|
ErrorLevel: 'warn'
|
|
|
|
- stage: build_lint
|
|
displayName: 'Build & Lint'
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
jobs:
|
|
- job: lint
|
|
timeoutInMinutes: 10
|
|
steps:
|
|
- task: NodeTool@0
|
|
displayName: 'Setup Node 💾'
|
|
inputs:
|
|
versionSpec: '18.x'
|
|
|
|
- script: npm install
|
|
displayName: 'Install Dependencies 📥'
|
|
|
|
- script: npm run lint
|
|
displayName: 'Run Lint Check 🔍'
|
|
|
|
- script: npm run fmt
|
|
displayName: 'Run Format Check 🌸'
|
|
|
|
- job: build
|
|
timeoutInMinutes: 10
|
|
steps:
|
|
- task: NodeTool@0
|
|
displayName: 'Setup Node 💾'
|
|
inputs:
|
|
versionSpec: '18.x'
|
|
|
|
- script: npm install
|
|
displayName: 'Install Dependencies 📥'
|
|
|
|
- script: npm run build
|
|
displayName: 'Build Toolkit 🏗'
|
|
|
|
- task: CopyFiles@2
|
|
displayName: 'Copy to Staging 📂'
|
|
inputs:
|
|
SourceFolder: '$(System.DefaultWorkingDirectory)/dist'
|
|
Contents: |
|
|
**/*
|
|
TargetFolder: '$(Build.ArtifactStagingDirectory)'
|
|
|
|
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
|
|
displayName: 'Generate Manifest 🧾'
|
|
inputs:
|
|
BuildDropPath: '$(Build.ArtifactStagingDirectory)'
|
|
PackageName: 'Webview UI Toolkit for Visual Studio Code'
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifacts 📦'
|
|
inputs:
|
|
ArtifactName: 'drop'
|