# Node.js # Build a general Node.js project with npm. # Add steps that analyze code, save build artifacts, deploy, and more: # https://docs.microsoft.com/azure/devops/pipelines/languages/javascript trigger: none pool: vmImage: 'windows-latest' variables: - group: build-sign-test steps: - pwsh: | Write-Host "------------------------" Write-Host "secret test - $env:SECRET_TEST" Write-Host "new var test - $env:NEW_VAR_TEST" Write-Host "SIGNING_CERT_NAME - $env:SIGNING_CERT_NAME" Write-Host "---" Write Host "This shouldn't work - $(secretTest)" Write-Host "------------------------" displayName: 'Var & Secret Testing' env: CSC_LINK: $(ebSigningCertIdentifierURL) CSC_KEY_PASSWORD: $(ebSigningCertKey) SIGNING_VAULT_URL: $(SigningVaultURL) SIGNING_CLIENT_ID: $(SigningClientId) SIGNING_TENTANT_ID: $(SigningTenantId) SIGNING_CLIENT_SECRET: $(SigningClientSecret) SIGNING_CERT_NAME: $(SigningCertName) NEW_VAR_TEST: $(newVarTest) SECRET_TEST: $(secretTest) - script: exit 1 displayName: Stop Pipeline - task: NodeTool@0 inputs: versionSpec: '10.x' displayName: 'Install Node.js' #- script: | # set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true # dotnet tool install --global AzureSignTool --version 2.0.17 # displayName: 'install AzureSignTool' - task: UseDotNet@2 displayName: 'Use .NET Core SDK 3.x' inputs: packageType: sdk version: 3.x installationPath: $(Agent.ToolsDirectory)/dotnet - pwsh: | git clone https://github.com/vcsjones/AzureSignTool.git cd AzureSignTool $latest_head = $(git rev-parse HEAD)[0..9] -join "" $latest_version = "0.0.0-g$latest_head" Write-Host "--------" Write-Host "git commit - $(git rev-parse HEAD)" Write-Host "latest_head - $latest_head" Write-Host "PACKAGE VERSION TO BUILD - $latest_version" Write-Host "--------" dotnet --version dotnet restore dotnet pack --output ./nupkg dotnet tool install --global --ignore-failed-sources --add-source ./nupkg --version $latest_version azuresigntool displayName: 'Install AST' - task: PowerShell@2 inputs: targetType: 'inline' script: | $packageVersion = (Get-Content -Raw -Path $(System.DefaultWorkingDirectory)\src\package.json | ConvertFrom-Json).version; echo "##vso[task.setvariable variable=PACKAGE_VERSION]${packageVersion}" displayName: 'Setting packageVersion' - script: | echo "package version: $(PACKAGE_VERSION)" displayName: Package Version testing - script: npm install displayName: 'npm install' - script: | npm run build npm npm run clean:dist displayName: 'npm build' # This task is not working... - pwsh: | Write-Host "------------------------" Write-Host "az pipeline secret test - $env:SECRET_TEST" Write-Host "az pipeline var test - $env:SIGNING_CERT_NAME" Write-Host "------------------------" npx electron-builder --win --x64 --ia32 -p never -c.win.certificateSubjectName=\"Bitwarden Inc\" displayName: 'electron-builder build & sign' env: CSC_LINK: $(ebSigningCertIdentifierURL) CSC_KEY_PASSWORD: $(ebSigningCertKey) SIGNING_VAULT_URL: $(SigningVaultURL) SIGNING_CLIENT_ID: $(SigningClientId) SIGNING_TENTANT_ID: $(SigningTenantId) SIGNING_CLIENT_SECRET: $(SigningClientSecret) SIGNING_CERT_NAME: $(SigningCertName) SECRET_TEST: $(secretTest) - script: ls -alht dist displayName: show executables - script: ls -alht dist/nsis-web displayName: show nsis-web executables - task: PublishPipelineArtifact@1 inputs: pathToPublish: '$(System.DefaultWorkingDirectory)/dist/Bitwarden-Portable-$(PACKAGE_VERSION).exe' artifactName: Bitwarden-Portable-$(PACKAGE_VERSION).exe # - task: PublishPipelineArtifact@1 # inputs: # pathToPublish: '$(System.DefaultWorkingDirectory)/dist/Bitwarden-1.23.1-ia32.appx' # artifactName: Bitwarden-$(GIT_COMMIT_TO_BUILD)-ia32.appx # # - task: PublishPipelineArtifact@1 # inputs: # pathToPublish: '$(System.DefaultWorkingDirectory)/dist/Bitwarden-1.23.1-x64.appx' # artifactName: Bitwarden-$(GIT_COMMIT_TO_BUILD)-x64.appx