From af3e7038cfde07b46d3205518062ba6091a51b29 Mon Sep 17 00:00:00 2001 From: bschnurr Date: Wed, 18 Feb 2026 15:49:00 -0800 Subject: [PATCH] update build template flake8 --- build/azure-devdiv-pipeline.pre-release.yml | 130 ++++++++------------ build/azure-devdiv-pipeline.stable.yml | 121 ++++++++---------- build/azure-pipeline.validation.yml | 81 ++++++++++++ 3 files changed, 181 insertions(+), 151 deletions(-) create mode 100644 build/azure-pipeline.validation.yml diff --git a/build/azure-devdiv-pipeline.pre-release.yml b/build/azure-devdiv-pipeline.pre-release.yml index a65765d..6cf1e4c 100644 --- a/build/azure-devdiv-pipeline.pre-release.yml +++ b/build/azure-devdiv-pipeline.pre-release.yml @@ -16,23 +16,49 @@ resources: type: git name: 1ESPipelineTemplates/MicroBuildTemplate ref: refs/tags/release + + - repository: templates + type: git + name: DevDiv/Pylance-Eng + ref: refs/heads/main variables: - name: TeamName value: VSCode-flake8 - name: VsixName value: flake8.vsix - - name: NodeVersion - value: '22.17.0' - - name: PythonVersion - value: '3.10' - name: AZURE_ARTIFACTS_FEED value: 'https://devdiv.pkgs.visualstudio.com/DevDiv/_packaging/Pylance_PublicPackages/npm/registry/' + parameters: - name: publishExtension displayName: 🚀 Publish Extension type: boolean default: false + - name: buildSteps + type: stepList + default: + - script: npm ci + displayName: Install NPM dependencies + + - script: python -m pip install -U pip + displayName: Upgrade pip + + - script: python -m pip install wheel + displayName: Install wheel + + - script: python -m pip install nox + displayName: Install nox + + - script: python -m nox --session install_bundled_libs + displayName: Install Python dependencies + + - script: python ./build/update_ext_version.py --for-publishing + displayName: Update build number + + - script: npm run package + displayName: Build extension + extends: template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate parameters: @@ -52,79 +78,23 @@ extends: - stage: Build displayName: Build & Package Extension jobs: - - job: Build - displayName: Build Job - pool: - name: VSEngSS-MicroBuild2022-1ES # use windows for codesigning to make things easier https://dev.azure.com/devdiv/DevDiv/_wiki/wikis/DevDiv.wiki/650/MicroBuild-Signing - os: windows - templateContext: - mb: - signing: - enabled: true - signType: real - signWithProd: true - outputs: - - output: pipelineArtifact - displayName: 'Publish Drop Artifact' - targetPath: '$(Build.StagingDirectory)\drop' - artifactName: drop - sbomEnabled: true - steps: - - task: npmAuthenticate@0 - inputs: - workingFile: .npmrc - - - script: npm config get registry - displayName: Verify NPM Registry - - - task: NodeTool@0 - inputs: - versionSpec: $(NodeVersion) - checkLatest: true - displayName: Select Node 22 LTS - - - task: UsePythonVersion@0 - inputs: - versionSpec: $(PythonVersion) # note Install Python dependencies step below relies on Python 3.10 - addToPath: true - architecture: 'x64' - displayName: Select Python version - - - script: npm ci - displayName: Install NPM dependencies - - - script: python -m pip install -U pip - displayName: Upgrade pip - - - script: python -m pip install wheel - displayName: Install wheel - - - script: python -m pip install nox - displayName: Install nox - - - script: python -m nox --session install_bundled_libs - displayName: Install Python dependencies - - - script: python ./build/update_ext_version.py --for-publishing - displayName: Update build number - - - script: npm run vsce-package-pre - displayName: Build VSIX - - - template: build/templates/sign.yml@self - parameters: - vsixName: $(VsixName) - workingDirectory: $(Build.StagingDirectory)\drop - signType: real - verifySignature: true - teamName: $(TeamName) - - - ${{ if eq(parameters.publishExtension, true) }}: - - template: build/templates/publish.yml@self - parameters: - azureSubscription: PylancePublishPipelineSecureConnectionWithManagedIdentity - vsixName: $(VsixName) - manifestName: extension.manifest - signatureName: extension.signature.p7s - publishFolder: drop - preRelease: true + - template: azure-pipelines/extension/templates/jobs/package.yml@templates + parameters: + buildSteps: ${{ parameters.buildSteps }} + isPreRelease: true + standardizedVersioning: true + customNPMRegistry: $(AZURE_ARTIFACTS_FEED) + + - stage: Publish + displayName: Publish Extension + dependsOn: Build + jobs: + - template: azure-pipelines/extension/templates/jobs/publish-extension.yml@templates + parameters: + publishExtension: ${{ parameters.publishExtension }} + preRelease: true + teamName: $(TeamName) + ghCreateTag: true + ghCreateRelease: true + ghReleaseAddChangeLog: true + customNPMRegistry: $(AZURE_ARTIFACTS_FEED) diff --git a/build/azure-devdiv-pipeline.stable.yml b/build/azure-devdiv-pipeline.stable.yml index ab87b66..d168246 100644 --- a/build/azure-devdiv-pipeline.stable.yml +++ b/build/azure-devdiv-pipeline.stable.yml @@ -10,15 +10,18 @@ resources: type: git name: 1ESPipelineTemplates/MicroBuildTemplate ref: refs/tags/release + + - repository: templates + type: git + name: DevDiv/Pylance-Eng + ref: refs/heads/main variables: - name: TeamName value: VSCode-flake8 - name: VsixName value: flake8.vsix - - name: NodeVersion - value: '22.17.0' - - name: PythonVersion - value: '3.10' + - name: AZURE_ARTIFACTS_FEED + value: 'https://devdiv.pkgs.visualstudio.com/DevDiv/_packaging/Pylance_PublicPackages/npm/registry/' parameters: - name: publishExtension @@ -26,6 +29,30 @@ parameters: type: boolean default: false + - name: buildSteps + type: stepList + default: + - script: npm ci + displayName: Install NPM dependencies + + - script: python -m pip install -U pip + displayName: Upgrade pip + + - script: python -m pip install wheel + displayName: Install wheel + + - script: python -m pip install nox + displayName: Install nox + + - script: python -m nox --session install_bundled_libs + displayName: Install Python dependencies + + - script: python ./build/update_ext_version.py --release --for-publishing + displayName: Update build number + + - script: npm run package + displayName: Build extension + extends: template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate parameters: @@ -45,71 +72,23 @@ extends: - stage: Build displayName: Build & Package Extension jobs: - - job: Build - displayName: Build Job - pool: - name: VSEngSS-MicroBuild2022-1ES # use windows for codesigning to make things easier https://dev.azure.com/devdiv/DevDiv/_wiki/wikis/DevDiv.wiki/650/MicroBuild-Signing - os: windows - templateContext: - mb: - signing: - enabled: true - signType: real - signWithProd: true - outputs: - - output: pipelineArtifact - displayName: 'Publish Drop Artifact' - targetPath: '$(Build.StagingDirectory)\drop' - artifactName: drop - sbomEnabled: true - steps: - - task: NodeTool@0 - inputs: - versionSpec: $(NodeVersion) - checkLatest: true - displayName: Select Node 22 LTS - - task: UsePythonVersion@0 - inputs: - versionSpec: $(PythonVersion) # note Install Python dependencies step below relies on Python 3.10 - addToPath: true - architecture: 'x64' - displayName: Select Python version + - template: azure-pipelines/extension/templates/jobs/package.yml@templates + parameters: + buildSteps: ${{ parameters.buildSteps }} + isPreRelease: false + standardizedVersioning: true + customNPMRegistry: $(AZURE_ARTIFACTS_FEED) - - script: npm ci - displayName: Install NPM dependencies - - - script: python -m pip install -U pip - displayName: Upgrade pip - - - script: python -m pip install wheel - displayName: Install wheel - - - script: python -m pip install nox - displayName: Install nox - - - script: python -m nox --session install_bundled_libs - displayName: Install Python dependencies - - - script: python ./build/update_ext_version.py --release --for-publishing - displayName: Update build number - - - script: npm run vsce-package - displayName: Build VSIX - - - template: build/templates/sign.yml@self - parameters: - vsixName: $(VsixName) - workingDirectory: $(Build.StagingDirectory)\drop - signType: real - verifySignature: true - teamName: $(TeamName) - - - ${{ if eq(parameters.publishExtension, true) }}: - - template: build/templates/publish.yml@self - parameters: - azureSubscription: PylancePublishPipelineSecureConnectionWithManagedIdentity - vsixName: $(VsixName) - manifestName: extension.manifest - signatureName: extension.signature.p7s - publishFolder: drop - preRelease: false + - stage: Publish + displayName: Publish Extension + dependsOn: Build + jobs: + - template: azure-pipelines/extension/templates/jobs/publish-extension.yml@templates + parameters: + publishExtension: ${{ parameters.publishExtension }} + preRelease: false + teamName: $(TeamName) + ghCreateTag: true + ghCreateRelease: true + ghReleaseAddChangeLog: true + customNPMRegistry: $(AZURE_ARTIFACTS_FEED) diff --git a/build/azure-pipeline.validation.yml b/build/azure-pipeline.validation.yml new file mode 100644 index 0000000..054d1ac --- /dev/null +++ b/build/azure-pipeline.validation.yml @@ -0,0 +1,81 @@ +# PR and Push validation pipeline + +trigger: + branches: + include: + - main + - release + - release/* + - release-* + +pr: + branches: + include: + - main + - release + - release/* + - release-* + drafts: false + +resources: + repositories: + - repository: MicroBuildTemplate + type: git + name: 1ESPipelineTemplates/MicroBuildTemplate + ref: refs/tags/release + + - repository: templates + type: git + name: DevDiv/Pylance-Eng + ref: refs/heads/main +variables: + - name: TeamName + value: VSCode-flake8 + - name: VsixName + value: flake8.vsix + - name: AZURE_ARTIFACTS_FEED + value: 'https://devdiv.pkgs.visualstudio.com/DevDiv/_packaging/Pylance_PublicPackages/npm/registry/' + +parameters: + - name: buildSteps + type: stepList + default: + - script: npm ci + displayName: Install NPM dependencies + + - script: python -m pip install -U pip + displayName: Upgrade pip + + - script: python -m pip install wheel + displayName: Install wheel + + - script: python -m pip install nox + displayName: Install nox + + - script: python -m nox --session install_bundled_libs + displayName: Install Python dependencies + + - script: npm run package + displayName: Build extension + +extends: + template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate + parameters: + sdl: + enabled: false + pool: + name: AzurePipelines-EO + os: windows + + customBuildTags: + - ES365AIMigrationTooling + stages: + - stage: Build + displayName: Build & Package Extension + jobs: + - template: azure-pipelines/extension/templates/jobs/package.yml@templates + parameters: + buildSteps: ${{ parameters.buildSteps }} + isPreRelease: false + standardizedVersioning: true + customNPMRegistry: $(AZURE_ARTIFACTS_FEED)