diff --git a/.config/CredScanSuppressions.json b/.config/CredScanSuppressions.json new file mode 100644 index 000000000..a54c454b0 --- /dev/null +++ b/.config/CredScanSuppressions.json @@ -0,0 +1,16 @@ +{ + "tool": "Credential Scanner", + "suppressions": [ + { + "file": [ + "dist/server/views/raw/v1_51.md", + "dist/server/views/raw/v1_8.md", + "release-notes/v1_51.md", + "release-notes/v1_8.md", + "docs/nodejs/nodejs-debugging.md", + "docs/python/environments.md" + ], + "_justification": "These are not real passwords. For documentation purposes only." + } + ] +} \ No newline at end of file diff --git a/.config/tsaoptions.json b/.config/tsaoptions.json new file mode 100644 index 000000000..d6506adc1 --- /dev/null +++ b/.config/tsaoptions.json @@ -0,0 +1,13 @@ +{ + "instanceUrl": "https://msazure.visualstudio.com/defaultcollection", + "projectName": "One", + "areaPath": "One\\VSCode", + "iterationPath": "One", + "notificationAliases": [ + "stbatt@microsoft.com", + "lszomoru@microsoft.com" + ], + "ppe": "false", + "template": "TFSMSAzure", + "codebaseName": "vscode-docs_main" +} \ No newline at end of file diff --git a/.pipelines/onebranch.buddy.yml b/.pipelines/onebranch.buddy.yml new file mode 100644 index 000000000..e5c4e4326 --- /dev/null +++ b/.pipelines/onebranch.buddy.yml @@ -0,0 +1,46 @@ +trigger: + branches: + include: + - vnext +pr: none + +resources: + repositories: + - repository: templates + type: git + name: OneBranch.Pipelines/GovernedTemplates + ref: refs/heads/main + + pipelines: + - pipeline: vscode-website-main + source: vscode-website (buddy) + trigger: + branches: + - main + + - pipeline: vscode-website-prod + source: vscode-website (official) + trigger: + branches: + - prod + + +variables: + LinuxContainerImage: "onebranch.azurecr.io/linux/ubuntu-2004:latest" + +extends: + template: v2/OneBranch.NonOfficial.CrossPlat.yml@templates + parameters: + git: + fetchDepth: 1 + lfs: true + retryCount: 3 + + globalSdl: + credscan: + suppressionsFile: $(Build.SourcesDirectory)\.config\CredScanSuppressions.json + policheck: + break: true + + stages: + - template: templates\stages\build-buddy.yml diff --git a/.pipelines/onebranch.official.yml b/.pipelines/onebranch.official.yml new file mode 100644 index 000000000..aff127815 --- /dev/null +++ b/.pipelines/onebranch.official.yml @@ -0,0 +1,39 @@ +trigger: + branches: + include: + - main +pr: none + +resources: + repositories: + - repository: templates + type: git + name: OneBranch.Pipelines/GovernedTemplates + ref: refs/heads/main + + pipelines: + - pipeline: vscode-website-prod + source: vscode-website (official) + trigger: + branches: + - prod + +variables: + LinuxContainerImage: "onebranch.azurecr.io/linux/ubuntu-2004:latest" + +extends: + template: v2/OneBranch.Official.CrossPlat.yml@templates + parameters: + git: + fetchDepth: 1 + lfs: true + retryCount: 3 + + globalSdl: + credscan: + suppressionsFile: $(Build.SourcesDirectory)\.config\CredScanSuppressions.json + policheck: + break: true + + stages: + - template: templates\stages\build-official.yml \ No newline at end of file diff --git a/.pipelines/templates/jobs/build.yml b/.pipelines/templates/jobs/build.yml new file mode 100644 index 000000000..74ea42781 --- /dev/null +++ b/.pipelines/templates/jobs/build.yml @@ -0,0 +1,51 @@ +parameters: + - name: jobDisplayName + type: string + - name: artifactName + type: string + +jobs: +- job: + displayName: ${{ parameters.jobDisplayName }} + pool: + type: linux + + variables: + ob_outputDirectory: '$(Pipeline.Workspace)/vscode-website/dist' + ob_artifactSuffix: ${{ parameters.jobDisplayName }} + ob_git_path: vscode-website/vscode-docs + + steps: + - download: ${{ parameters.artifactName }} + artifact: drop_Build_Linux + displayName: Download ${{ parameters.artifactName }} + + - task: CopyFiles@2 + inputs: + contents: '**' + sourceFolder: $(Pipeline.Workspace)/${{ parameters.artifactName }}/drop_Build_Linux + targetFolder: $(Pipeline.Workspace)/vscode-website + displayName: Copy ${{ parameters.artifactName }} + + - task: NodeTool@0 + displayName: Use Node 12.18.0 + inputs: + versionSpec: 12.18.0 + checkLatest: true + + - task: Npm@0 + displayName: npm install yarn + inputs: + arguments: -g yarn + + - script: yarn --frozen-lockfile + displayName: Install dependencies + workingDirectory: $(Pipeline.Workspace)/vscode-website + + - pwsh: $(Pipeline.Workspace)/vscode-website/scripts/ci-build-dist-setup.ps1 + displayName: Build Dist Setup + workingDirectory: $(Pipeline.Workspace)/vscode-website + + - pwsh: $(Pipeline.Workspace)/vscode-website/scripts/ci-build-artifact-from-website.ps1 + displayName: Rebuild Dist From Website + workingDirectory: $(Pipeline.Workspace)/vscode-website diff --git a/.pipelines/templates/stages/build-buddy.yml b/.pipelines/templates/stages/build-buddy.yml new file mode 100644 index 000000000..aeff6a504 --- /dev/null +++ b/.pipelines/templates/stages/build-buddy.yml @@ -0,0 +1,12 @@ +stages: +- stage: Build + jobs: + - template: ..\jobs\build.yml + parameters: + jobDisplayName: vscode-ppe + artifactName: vscode-website-main + + - template: ..\jobs\build.yml + parameters: + jobDisplayName: vscode-docs-vnext + artifactName: vscode-website-prod diff --git a/.pipelines/templates/stages/build-official.yml b/.pipelines/templates/stages/build-official.yml new file mode 100644 index 000000000..9870c7c8c --- /dev/null +++ b/.pipelines/templates/stages/build-official.yml @@ -0,0 +1,7 @@ +stages: +- stage: Build + jobs: + - template: ..\jobs\build.yml + parameters: + jobDisplayName: vscode + artifactName: vscode-website-prod \ No newline at end of file