Forum Discussion
Automate PBIVIZ Cert Create and Install on Azure Devops CI/CD
- 6 years ago
We were able to automate the same on Azure Devops using the usual NPM tasks. However the trick here was 'install the certificate' and using powershell 'to import this on the cert store' before packaging and generating the *.pbiviz file.
Sample YAML file for reference -
pool:
name: Azure Pipelines
steps:
- task: NodeTool@0
displayName: 'Use Node 10.x'
inputs:
versionSpec: 10.x
checkLatest: true- task: Npm@1
displayName: 'npm install'
inputs:
workingDir: '$(System.DefaultWorkingDirectory)'
verbose: false- task: Npm@1
displayName: 'npm test'
inputs:
command: custom
workingDir: '$(System.DefaultWorkingDirectory)'
verbose: false
customCommand: 'run test -- --reporter mocha-junit-reporter'
enabled: false- task: Npm@1
displayName: 'npm install pbiviz'
inputs:
command: custom
workingDir: '$(System.DefaultWorkingDirectory)'
verbose: false
customCommand: 'install -g powerbi-visuals-tools'- task: Npm@1
displayName: 'npm install cert'
inputs:
command: custom
workingDir: '$(System.DefaultWorkingDirectory)'
verbose: false
customCommand: 'run cert'- powershell: |
$ExtensionFile = "C:\npm\prefix\node_modules\powerbi-visuals-tools\config.json"
$jsondata = Get-Content -Raw -Path $ExtensionFile | ConvertFrom-Json
CERTUTIL -f -p $jsondata.server.passphrase -importpfx “C:\npm\prefix\node_modules\powerbi-visuals-tools\certs\PowerBICustomVisualTest_public.pfx”
displayName: 'PowerShell Script - Import Pfx to Trusted Root '- task: Npm@1
displayName: 'npm package'
inputs:
command: custom
workingDir: '$(System.DefaultWorkingDirectory)'
verbose: false
customCommand: 'run package'- task: PublishBuildArtifacts@1
displayName: 'Publish artifacts: drop'
inputs:
PathtoPublish: dist- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage'
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(Build.SourcesDirectory)/coverage/cobertura-coverage.xml'
reportDirectory: '$(Build.SourcesDirectory)/coverage/'
enabled: false- task: PublishTestResults@2
displayName: 'Publish Test Results **/test-results.xml'
inputs:
testResultsFiles: '**/test-results.xml'
enabled: false
a
Hello,
Applying npm command can build the visual. At my end, problem was ConsoleWriter javascript file was not found: