diff --git a/azure-pipelines.yml b/azure-pipelines.yml index eaa73c48..b19300a6 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,58 +4,203 @@ trigger: variables: - group: Vars -pool: - vmImage: 'vs2017-win2016' +- job: Windows + pool: + vmImage: 'vs2017-win2016' -steps: -- task: NodeTool@0 - inputs: - versionSpec: '10.x' - displayName: 'Install Node.js' + steps: + - task: NodeTool@0 + inputs: + versionSpec: '10.x' + displayName: 'Install Node.js' -- script: yarn - displayName: 'Install dependencies' + - script: yarn + displayName: 'Install dependencies' -- script: node scripts/build-native.js - displayName: 'Rebuild native dependencies' + - script: node scripts/build-native.js + displayName: 'Rebuild native dependencies' -- script: yarn run build:typings - displayName: 'Build typings' + - script: yarn run build:typings + displayName: 'Build typings' -- script: yarn run build - displayName: 'Build' + - script: yarn run build + displayName: 'Build' -- script: node scripts/prepackage-plugins.js - displayName: 'Prepackage plugins' + - script: node scripts/prepackage-plugins.js + displayName: 'Prepackage plugins' -- script: node scripts/build-windows.js - displayName: 'Package' - env: - WIN_CSC_LINK: $(WIN_CSC_LINK) - WIN_CSC_KEY_PASSWORD: $(WIN_CSC_KEY_PASSWORD) - BT_TOKEN: $(BT_TOKEN) - GH_TOKEN: $(GH_TOKEN) + - script: node scripts/build-windows.js + displayName: 'Package' + env: + WIN_CSC_LINK: $(WIN_CSC_LINK) + WIN_CSC_KEY_PASSWORD: $(WIN_CSC_KEY_PASSWORD) + BT_TOKEN: $(BT_TOKEN) + GH_TOKEN: $(GH_TOKEN) -- task: CopyFiles@2 - inputs: - contents: 'dist\\*-setup.exe' - targetFolder: $(Build.ArtifactStagingDirectory) - flattenFolders: true - cleanTargetFolder: true + - task: CopyFiles@2 + inputs: + contents: 'dist\\*-setup.exe' + targetFolder: $(Build.ArtifactStagingDirectory) + flattenFolders: true + cleanTargetFolder: true -- task: PublishBuildArtifacts@1 - inputs: - pathtoPublish: $(Build.ArtifactStagingDirectory) - artifactName: Windows - Installer + - task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: $(Build.ArtifactStagingDirectory) + artifactName: Windows - Installer + condition: eq(variables['Build.SourceBranch'], 'refs/heads/master') -- task: CopyFiles@2 - inputs: - contents: 'dist\\*-portable.exe' - targetFolder: $(Build.ArtifactStagingDirectory) - flattenFolders: true - cleanTargetFolder: true + - task: CopyFiles@2 + inputs: + contents: 'dist\\*-portable.exe' + targetFolder: $(Build.ArtifactStagingDirectory) + flattenFolders: true + cleanTargetFolder: true -- task: PublishBuildArtifacts@1 - inputs: - pathtoPublish: $(Build.ArtifactStagingDirectory) - artifactName: Windows - Portable build + - task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: $(Build.ArtifactStagingDirectory) + artifactName: Windows - Portable build + condition: eq(variables['Build.SourceBranch'], 'refs/heads/master') + +- job: Linux + pool: + vmImage: 'ubuntu-16.04' + + steps: + - task: NodeTool@0 + inputs: + versionSpec: '10.x' + displayName: 'Install Node.js' + + - script: yarn + displayName: 'Install dependencies' + + - script: node scripts/build-native.js + displayName: 'Rebuild native dependencies' + + - script: yarn run build:typings + displayName: 'Build typings' + + - script: yarn run build + displayName: 'Build' + + - script: node scripts/prepackage-plugins.js + displayName: 'Prepackage plugins' + + - script: node scripts/build-linux.js + displayName: 'Package' + env: + BT_TOKEN: $(BT_TOKEN) + GH_TOKEN: $(GH_TOKEN) + + - task: CopyFiles@2 + inputs: + contents: 'dist\\*.deb' + targetFolder: $(Build.ArtifactStagingDirectory) + flattenFolders: true + cleanTargetFolder: true + + - task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: $(Build.ArtifactStagingDirectory) + artifactName: Linux - DEB + condition: eq(variables['Build.SourceBranch'], 'refs/heads/master') + + - task: CopyFiles@2 + inputs: + contents: 'dist\\*.rpm' + targetFolder: $(Build.ArtifactStagingDirectory) + flattenFolders: true + cleanTargetFolder: true + + - task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: $(Build.ArtifactStagingDirectory) + artifactName: Linux - RPM + condition: eq(variables['Build.SourceBranch'], 'refs/heads/master') + + - task: CopyFiles@2 + inputs: + contents: 'dist\\*.snap' + targetFolder: $(Build.ArtifactStagingDirectory) + flattenFolders: true + cleanTargetFolder: true + + - task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: $(Build.ArtifactStagingDirectory) + artifactName: Linux - Snap + condition: eq(variables['Build.SourceBranch'], 'refs/heads/master') + + - task: CopyFiles@2 + inputs: + contents: 'dist\\*.tar.gz' + targetFolder: $(Build.ArtifactStagingDirectory) + flattenFolders: true + cleanTargetFolder: true + + - task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: $(Build.ArtifactStagingDirectory) + artifactName: Linux - tar.gz + condition: eq(variables['Build.SourceBranch'], 'refs/heads/master') + +- job: macOS + pool: + vmImage: 'macOS-10.14' + + steps: + - task: NodeTool@0 + inputs: + versionSpec: '10.x' + displayName: 'Install Node.js' + + - script: yarn + displayName: 'Install dependencies' + + - script: node scripts/build-native.js + displayName: 'Rebuild native dependencies' + + - script: yarn run build:typings + displayName: 'Build typings' + + - script: yarn run build + displayName: 'Build' + + - script: node scripts/prepackage-plugins.js + displayName: 'Prepackage plugins' + + - script: node scripts/build-macos.js + displayName: 'Package' + env: + CSC_LINK: $(CSC_LINK) + CSC_KEY_PASSWORD: $(CSC_KEY_PASSWORD) + BT_TOKEN: $(BT_TOKEN) + GH_TOKEN: $(GH_TOKEN) + + - task: CopyFiles@2 + inputs: + contents: 'dist\\*.dmg' + targetFolder: $(Build.ArtifactStagingDirectory) + flattenFolders: true + cleanTargetFolder: true + + - task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: $(Build.ArtifactStagingDirectory) + artifactName: macOS - DMG + condition: eq(variables['Build.SourceBranch'], 'refs/heads/master') + + - task: CopyFiles@2 + inputs: + contents: 'dist\\*.zip' + targetFolder: $(Build.ArtifactStagingDirectory) + flattenFolders: true + cleanTargetFolder: true + + - task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: $(Build.ArtifactStagingDirectory) + artifactName: macOS - app.zip + condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')