Skip to content

Commit 30bd736

Browse files
author
Sahil Lagwal (MAQ LLC)
committed
Merged PR 671004: YAML pipeline for powerbi-javascript NuGet release
### Checklist | **Checklist Point** | **Description** | **Status** | |------------------------------|------------------------------------------------------------|------------| | **Syntax Validation** | Ensure the YAML syntax is correct (no tabs, proper indentation). | Yes | | **Environment Variables** | Check if environment variables are securely defined. | Yes | | **Dependencies** | Verify all required dependencies are installed or defined. | Yes | | **Triggers** | Confirm pipeline triggers (e.g., branches, PRs) are correctly configured. | Yes | | **Artifacts** | Validate build artifacts are properly generated and stored. | Yes | ### PR Classification This PR involves the migration of the powerbi-javascript NuGet release process from a classical pipeline to a YAML-based pipeline. ### PR Summary This pull request introduces a YAML pipeline for the release of the powerbi-javascript NuGet package. - Added `/.pipelines/powerbi-javascript-nuget-release.yml` to define the pipeline stages for internal and external NuGet package publishing. - Included manual approval stage for external publishing. This PR introduces a new pipeline for the powerbi-javascript NuGet release. The pipeline is designed to: - Publish the NuGet package internally. - Manually trigger and obtain approval to release the package to the external feed. - Release the package externally upon approval. Test run with verbose logging: https://dev.azure.com/powerbi/Embedded/_build/results?buildId=12816842&view=results ### Pipeline stage execution snapshot ![image.png](https://dev.azure.com/powerbi/4c7b5adb-c2d0-4f18-b23c-edc4ac30f4e1/_apis/git/repositories/1dd63332-e003-46a3-ac6f-70213a1bcc2e/pullRequests/671004/attachments/image.png) Related work items: #1562018
1 parent fe327a6 commit 30bd736

1 file changed

Lines changed: 127 additions & 0 deletions

File tree

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
#################################################################################
2+
# OneBranch Pipelines - Official #
3+
# This pipeline was created by EasyStart from a sample located at: #
4+
# https://aka.ms/obpipelines/easystart/samples #
5+
# Documentation: https://aka.ms/obpipelines #
6+
# Yaml Schema: https://aka.ms/obpipelines/yaml/schema #
7+
# Retail Tasks: https://aka.ms/obpipelines/tasks #
8+
# Support: https://aka.ms/onebranchsup #
9+
#################################################################################
10+
11+
trigger: none # https://aka.ms/obpipelines/triggers
12+
13+
resources:
14+
repositories:
15+
- repository: templates
16+
type: git
17+
name: OneBranch.Pipelines/GovernedTemplates
18+
ref: refs/heads/main
19+
pipelines:
20+
- pipeline: PowerbiJavascriptOfficial
21+
source: powerbi-javascript-Official
22+
23+
variables:
24+
ENABLE_PRS_DELAYSIGN: 1
25+
ROOT: $(Build.SourcesDirectory)
26+
REPOROOT: $(Build.SourcesDirectory)
27+
OUTPUTROOT: $(REPOROOT)\out
28+
NUGET_XMLDOC_MODE: none
29+
system.debug: true
30+
WindowsContainerImage: 'onebranch.azurecr.io/windows/ltsc2022/vse2022:latest' # Docker image which is used to build the project https://aka.ms/obpipelines/containers
31+
32+
extends:
33+
template: v2/OneBranch.Official.CrossPlat.yml@templates # https://aka.ms/obpipelines/templates
34+
parameters:
35+
globalSdl: # https://aka.ms/obpipelines/sdl
36+
tsa:
37+
enabled: true # onebranch publish all sdl results to TSA. If TSA is disabled all SDL tools will forced into 'break' build mode.
38+
cg:
39+
failOnAlert: false
40+
publishLogs:
41+
enabled: false
42+
featureFlags:
43+
WindowsHostVersion: 1ESWindows2022
44+
45+
stages:
46+
- stage: Release_Internal
47+
displayName: Release NuGet internal
48+
49+
jobs:
50+
- job: PublishToNuGetInternal
51+
displayName: Publish to NuGet Internal Feed
52+
pool:
53+
type: windows
54+
55+
variables:
56+
ob_outputDirectory: '$(OUTPUTROOT)' # this directory is uploaded to pipeline artifacts, reddog and cloudvault. More info at https://aka.ms/obpipelines/artifacts
57+
58+
steps:
59+
- task: DownloadPipelineArtifact@2
60+
inputs:
61+
buildType: 'specific'
62+
project: '4c7b5adb-c2d0-4f18-b23c-edc4ac30f4e1' # Embedded
63+
definition: '8483' # powerbi-javascript-Official
64+
buildVersionToDownload: 'latest'
65+
artifactName: 'drop'
66+
targetPath: '$(Pipeline.Workspace)\PublishedNuGetArtifact'
67+
68+
- task: NuGetCommand@2
69+
displayName: 'NuGet push Release package internal'
70+
inputs:
71+
command: 'push'
72+
packagesToPush: '$(Pipeline.Workspace)\PublishedNuGetArtifact\outputs\package\Release\Microsoft.PowerBI.JavaScript.*.nupkg'
73+
nuGetFeedType: 'internal'
74+
publishVstsFeed: 'd95dbb95-6687-4730-b306-abe69704b45d' # PowerBI.SDKs
75+
76+
- stage: Prod_ApprovalToExternalPublish
77+
displayName: Approval to external publish
78+
trigger: manual
79+
dependsOn: []
80+
variables:
81+
ob_release_environment: Production
82+
ob_release_usedeploymentjob: true
83+
ob_deploymentjob_environment: PBIEmbed
84+
85+
jobs:
86+
- job: ApprovalToExternalPublish
87+
displayName: Approval to publish the powerbi-javascript NuGet package to external
88+
pool:
89+
type: release
90+
91+
steps:
92+
- download: PowerbiJavascriptOfficial
93+
94+
- stage: Release_External
95+
displayName: Release NuGet external
96+
dependsOn: Prod_ApprovalToExternalPublish
97+
condition: succeeded()
98+
99+
jobs:
100+
- job: PublishToNuGetExternal
101+
displayName: Publish to NuGet External
102+
pool:
103+
name: Azure Pipelines
104+
type: windows
105+
isCustom: true
106+
vmImage: 'windows-latest'
107+
108+
variables:
109+
ob_outputDirectory: '$(OUTPUTROOT)' # this directory is uploaded to pipeline artifacts, reddog and cloudvault. More info at https://aka.ms/obpipelines/artifacts
110+
111+
steps:
112+
- task: DownloadPipelineArtifact@2
113+
inputs:
114+
buildType: 'specific'
115+
project: '4c7b5adb-c2d0-4f18-b23c-edc4ac30f4e1' # Embedded
116+
definition: '8483' # powerbi-javascript-Official
117+
buildVersionToDownload: 'latest'
118+
artifactName: 'drop'
119+
targetPath: '$(Pipeline.Workspace)\PublishedNuGetArtifact'
120+
121+
- task: NuGetCommand@2
122+
displayName: 'NuGet push Release package external'
123+
inputs:
124+
command: 'push'
125+
packagesToPush: '$(Pipeline.Workspace)\PublishedNuGetArtifact\outputs\package\Release\Microsoft.PowerBI.JavaScript.*.nupkg'
126+
nuGetFeedType: 'external'
127+
publishFeedCredentials: 'PowerBI CSharp Nuget Prod 2023'

0 commit comments

Comments
 (0)