diff --git a/vsts/node-nightly-windows.yaml b/vsts/node-nightly-windows.yaml index 4c2b4a5..51f51ff 100644 --- a/vsts/node-nightly-windows.yaml +++ b/vsts/node-nightly-windows.yaml @@ -73,11 +73,27 @@ stages: - job: pack displayName: 'Package for Release' steps: + + # Run SBOM on source + - task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0 + displayName: 'Generate software manifest for executable' + inputs: + BuildDropPath: $(Build.SourcesDirectory) + + # Publish SBOM manifest artifact + - task: PublishBuildArtifacts@1 + displayName: 'Publish build artifacts' + inputs: + pathToPublish: $(Build.SourcesDirectory)\_manifest + artifactName: SBOM + # Install dependencies - script: npm ci displayName: 'Install dependencies (CI)' + - script: npm run build displayName: 'Typescript compile' + # Pack npm archive - task: PowerShell@2 displayName: 'Create NPM pack archive' @@ -87,6 +103,7 @@ stages: $package = npm pack echo "##vso[task.setvariable variable=package]$package" workingDirectory: $(Build.SourcesDirectory) + # copy packed npm archive to artifact staging / dist - task: CopyFiles@2 displayName: 'Copy packed archive to artifact staging' @@ -94,6 +111,7 @@ stages: contents: $(package) targetFolder: $(Build.ArtifactStagingDirectory) sourceFolder: $(Build.SourcesDirectory) + # publish artifacts to pipeline - task: PublishBuildArtifacts@1 displayName: 'Publish build artifacts' @@ -101,48 +119,48 @@ stages: pathToPublish: $(Build.ArtifactStagingDirectory) artifactName: azure-iot-hub-node -#- stage: Release -# condition: ${{ parameters.release }} -# dependsOn: ['Pack'] -# pool: -# name: $(buildPool) -# vmImage: $(vmImage) -# demands: -# - ImageOverride -equals $(vmImage) -# jobs: +- stage: Release + condition: ${{ parameters.release }} + dependsOn: ['Pack'] + pool: + name: $(buildPool) + vmImage: $(vmImage) + demands: + - ImageOverride -equals $(vmImage) + jobs: # Prompt for release approval and SBOM verification #- deployment: 'stageRelease' # displayName: 'Approval stage for release' # environment: 'release' # Publish artifact to partner SDK storage - # - job: 'publish' - # displayName: 'Publish to SDK partner storage' - # steps: + - job: 'publish' + displayName: 'Publish to SDK partner storage' + steps: # Download artifact - #- task: DownloadBuildArtifacts@0 - # displayName : 'Download npm package from Build Artifacts' - # inputs: - # buildType: 'current' - # downloadType: 'single' - # artifactName: 'azure-iot-hub-node' - # downloadPath: $(Build.ArtifactStagingDirectory) + - task: DownloadBuildArtifacts@0 + displayName : 'Download npm package from Build Artifacts' + inputs: + buildType: 'current' + downloadType: 'single' + artifactName: 'azure-iot-hub-node' + downloadPath: $(Build.ArtifactStagingDirectory) # Copy packed npm archive to dated folder for release archive - #- task: CopyFiles@2 - # displayName: 'Copy packed archive to artifact staging' - # inputs: - # contents: '*.tgz' - # sourceFolder: $(Build.ArtifactStagingDirectory)\azure-iot-hub-node - # targetFolder: $(Build.ArtifactStagingDirectory)\release\$(buildFolder) + - task: CopyFiles@2 + displayName: 'Copy packed archive to artifact staging' + inputs: + contents: '*.tgz' + sourceFolder: $(Build.ArtifactStagingDirectory)\azure-iot-hub-node + targetFolder: $(Build.ArtifactStagingDirectory)\release\$(buildFolder) # Copy to SDK partner release storage - #- task: AzureFileCopy@2 - # displayName: 'Copy Release Artifacts to Partner Release Pipeline' - # inputs: - # SourcePath: $(Build.ArtifactStagingDirectory)\release - # azureSubscription: azuresdkpartnerdrops-sc - # Destination: AzureBlob - # storage: azuresdkpartnerdrops - # ContainerName: 'drops/azure-iot-sdk/node/' \ No newline at end of file + - task: AzureFileCopy@2 + displayName: 'Copy Release Artifacts to Partner Release Pipeline' + inputs: + SourcePath: $(Build.ArtifactStagingDirectory)\release + azureSubscription: azuresdkpartnerdrops-sc + Destination: AzureBlob + storage: azuresdkpartnerdrops + ContainerName: 'drops/azure-iot-sdk/node/' \ No newline at end of file