diff --git a/.ci/azure-pipelines.yml b/.ci/azure-pipelines.yml new file mode 100644 index 00000000..ebd6845e --- /dev/null +++ b/.ci/azure-pipelines.yml @@ -0,0 +1,110 @@ +name: $(Build.SourceBranchName)-$(Build.SourceVersion) + +trigger: + - master + +jobs: + - job: buildMacos + displayName: Build macOS + condition: succeeded() + pool: + vmImage: macOS-10.13 + demands: node.js + + steps: + - template: build.yml + + - script: | + echo '##vso[task.setvariable variable=binPath]'$(esy x which Bin) + displayName: "Save binPath variable" + + - task: PublishPipelineArtifact@0 + displayName: 'Publish Artifact: macOS' + inputs: + targetPath: $(binPath) + artifactName: macOS + + - job: buildWindows + displayName: Build Windows + condition: succeeded() + pool: + vmImage: vs2017-win2016 + demands: node.js + + steps: + - template: build.yml + + - script: | + echo '##vso[task.setvariable variable=binPath]'$(esy x which Bin.exe) + displayName: "Save binPath variable" + + - task: PublishPipelineArtifact@0 + displayName: 'Publish Artifact: Windows' + inputs: + targetPath: $(binPath) + artifactName: Windows + + - job: buildLinux + displayName: Build Linux + condition: succeeded() + pool: + vmImage: ubuntu-16.04 + demands: node.js + + steps: + - template: build.yml + + - script: | + echo '##vso[task.setvariable variable=binPath]'$(esy x which Bin) + displayName: "Save binPath variable" + + - task: PublishPipelineArtifact@0 + displayName: 'Publish Artifact: Linux' + inputs: + targetPath: $(binPath) + artifactName: Linux + + - job: Bundle + displayName: Bundle builds + dependsOn: + - buildLinux + - buildMacos + - buildWindows + condition: succeeded() + pool: + vmImage: macOS-10.13 + demands: node.js + + steps: + - task: DownloadPipelineArtifact@0 + inputs: + targetPath: $(Build.ArtifactStagingDirectory) + artifactName: Linux + + - task: DownloadPipelineArtifact@0 + inputs: + targetPath: $(Build.ArtifactStagingDirectory) + artifactName: macOS + + - task: DownloadPipelineArtifact@0 + inputs: + targetPath: $(Build.ArtifactStagingDirectory) + artifactName: Windows + + - script: 'mv $(Build.ArtifactStagingDirectory)/Linux/Bin.exe $(Build.SourcesDirectory)/editor-extensions/vscode/bin.native.linux' + displayName: 'Move Linux binary to correct place' + + - script: 'mv $(Build.ArtifactStagingDirectory)/macOS/Bin.exe $(Build.SourcesDirectory)/editor-extensions/vscode/bin.native' + displayName: 'Move macOS binary to correct place' + + - script: 'mv $(Build.ArtifactStagingDirectory)/Windows/Bin.exe $(Build.SourcesDirectory)/editor-extensions/vscode/bin.native.exe' + displayName: 'Move Windows binary to correct place' + + - script: 'npm run zip' + displayName: 'npm run zip' + + - task: PublishBuildArtifacts@1 + displayName: 'Publish zip' + inputs: + PathtoPublish: './editor-extensions' + ArtifactName: editorExtensions diff --git a/.ci/build.yml b/.ci/build.yml new file mode 100644 index 00000000..426cfb23 --- /dev/null +++ b/.ci/build.yml @@ -0,0 +1,14 @@ +steps: + - task: NodeTool@0 + displayName: 'Use Node 8.x' + inputs: + versionSpec: 8.x + + - script: 'npm install -g esy@0.4.3 --unsafe-perm' + displayName: 'npm install -g esy' + + - script: 'esy install' + displayName: 'esy install' + + - script: 'esy build' + displayName: 'esy build'