diff --git a/.azure/azure-pipelines-prelease.yml b/.azure/azure-pipelines-prelease.yml new file mode 100644 index 0000000..cec72d7 --- /dev/null +++ b/.azure/azure-pipelines-prelease.yml @@ -0,0 +1,17 @@ +name: vscode-makecode Pre-Release + +# Currently only run this pipeline on request +trigger: none +pr: none + +parameters: +- name: nodeVersion + type: string + default: '20.x' + +extends: + template: pipeline-template.yml + parameters: + nodeVersion: ${{ parameters.nodeVersion }} + isPreRelease: true + signType: 'test' diff --git a/.azure/azure-pipelines-release.yml b/.azure/azure-pipelines-release.yml index b0ef74a..362f31f 100644 --- a/.azure/azure-pipelines-release.yml +++ b/.azure/azure-pipelines-release.yml @@ -8,43 +8,10 @@ parameters: - name: nodeVersion type: string default: '20.x' -- name: isPreRelease - type: boolean - default: false - -resources: - repositories: - - repository: CustomPipelineTemplates - type: git - name: 1ESPipelineTemplates/MicroBuildTemplate - -variables: -- group: 'makecode-marketplace-pat' extends: - template: azure-pipelines/MicroBuild.1ES.Official.yml@CustomPipelineTemplates + template: pipeline-template.yml parameters: - pool: - name: AzurePipelines-EO - image: 1ESPT-Ubuntu22.04 - os: linux - sdl: - sourceAnalysisPool: - name: AzurePipelines-EO - image: 1ESPT-Windows2022 - stages: - # Stage to build the VSIX and publish it - - template: stages/build.yml - parameters: - isPreRelease: ${{ parameters.isPreRelease }} - nodeVersion: ${{ parameters.nodeVersion }} - signType: 'real' - - # Stage provides a manual approval step before the publish stage is run - - template: stages/approval.yml - - # Publish the VSIX to the extension marketplace - - template: stages/publish.yml - parameters: - isPreRelease: ${{ parameters.isPreRelease }} - nodeVersion: ${{ parameters.nodeVersion }} + nodeVersion: ${{ parameters.nodeVersion }} + isPreRelease: false + signType: 'real' diff --git a/.azure/pipeline-template.yml b/.azure/pipeline-template.yml new file mode 100644 index 0000000..fcc332a --- /dev/null +++ b/.azure/pipeline-template.yml @@ -0,0 +1,46 @@ +# Shared template for release and pre-release pipelines +parameters: +- name: nodeVersion + type: string + default: '20.x' +- name: isPreRelease + type: boolean +- name: signType + type: string + +resources: + repositories: + - repository: CustomPipelineTemplates + type: git + name: 1ESPipelineTemplates/MicroBuildTemplate + +variables: +- group: 'makecode-marketplace-pat' + +extends: + template: azure-pipelines/MicroBuild.1ES.Official.yml@CustomPipelineTemplates + parameters: + pool: + name: AzurePipelines-EO + image: 1ESPT-Ubuntu22.04 + os: linux + sdl: + sourceAnalysisPool: + name: AzurePipelines-EO + image: 1ESPT-Windows2022 + stages: + # Stage to build the VSIX and publish it + - template: stages/build.yml + parameters: + isPreRelease: ${{ parameters.isPreRelease }} + nodeVersion: ${{ parameters.nodeVersion }} + signType: ${{ parameters.signType }} + + # Stage provides a manual approval step before the publish stage is run + - template: stages/approval.yml + + # Publish the VSIX to the extension marketplace + - template: stages/publish.yml + parameters: + isPreRelease: ${{ parameters.isPreRelease }} + nodeVersion: ${{ parameters.nodeVersion }} diff --git a/.azure/steps/sign.yml b/.azure/steps/sign.yml index 1225c0f..729a0e7 100644 --- a/.azure/steps/sign.yml +++ b/.azure/steps/sign.yml @@ -7,7 +7,7 @@ steps: displayName: "Install dotnet SDK" inputs: packageType: "sdk" - version: "6.0.x" + version: "8.0.x" # Need this to run signing plugins - task: UseDotNet@2 @@ -20,11 +20,18 @@ steps: - task: MicroBuildSigningPlugin@4 displayName: "Install Signing Plugin" inputs: + ${{ if eq(parameters.signType, 'real') }}: + signType: real + signWithProd: true + ConnectedPMEServiceName: beb8cb23-b303-4c95-ab26-9e44bc958d39 + ${{ else }}: + signType: test signType: ${{ parameters.signType }} - azureSubscription: "MicroBuild Signing Task (DevDiv)" + ConnectedServiceName: "MicroBuild Signing Task (DevDiv)" feedSource: "https://devdiv.pkgs.visualstudio.com/DefaultCollection/_packaging/MicroBuildToolset/nuget/v3/index.json" env: TeamName: "$(TeamName)" + SYSTEM_ACCESSTOKEN: $(System.AccessToken) - script: npx @vscode/vsce@latest generate-manifest -i $(SetExtensionName.VSIX) -o $(SetExtensionName.VSIX).manifest displayName: 'Generate extension manifest' diff --git a/.github/workflows/build-main.yml b/.github/workflows/build-main.yml index 4bc468b..239b4db 100644 --- a/.github/workflows/build-main.yml +++ b/.github/workflows/build-main.yml @@ -33,7 +33,7 @@ jobs: - name: Build vsix run: npx -p=vsce vsce package --yarn --out vscode-makecode-arcade.vsix - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: extension path: vscode-makecode-arcade.vsix