# Set up triggers in GUI name: $(Build.Reason)_$(Build.SourceBranch)_$(Rev:r) jobs: - job: Linux timeoutInMinutes: 15 pool: vmImage: ubuntu-16.04 steps: - task: NodeTool@0 displayName: "Use Node 10" inputs: versionSpec: 10.x - script: cat /etc/os-release displayName: "Get os release info" - script: yarn displayName: "Yarn install" env: { PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true } - script: yarn lint displayName: "Lint" - script: sudo apt-get update && sudo apt-get install libgconf-2-4 -y displayName: Install dependency - script: "xvfb-run --auto-servernum --server-args='-screen 0, 1600x900x24' yarn cover" displayName: "Run tests with coverage report" - task: PublishTestResults@2 displayName: "Publish test results" inputs: testResultsFormat: "JUnit" testResultsFiles: "./coverage/junit.xml" condition: always() - script: npx codecov -F Linux displayName: "Upload coverage report" env: { CODECOV_TOKEN: $(CODECOV_TOKEN) } - script: yarn dist --x64 displayName: "Build & publish" condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) env: { GH_TOKEN: $(GH_TOKEN) } - script: yarn build --x64 displayName: "Build" condition: and(succeeded(), ne(variables['Build.SourceBranch'], 'refs/heads/master')) - task: PublishBuildArtifacts@1 displayName: "Upload artifacts" inputs: PathtoPublish: "$(Build.SourcesDirectory)/release-builds" ArtifactName: Release - task: PublishBuildArtifacts@1 displayName: "Upload image snapshots" condition: always() inputs: PathtoPublish: "$(Build.SourcesDirectory)/tests/e2e/__image_snapshots__" ArtifactName: Snaphots - job: macOS timeoutInMinutes: 15 pool: vmImage: "xcode9-macos10.13" steps: - task: NodeTool@0 displayName: "Use Node 10" inputs: versionSpec: 10.x - script: yarn displayName: "Yarn install" env: { PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true } - script: yarn lint displayName: "Lint" - script: yarn cover displayName: "Run tests with coverage report" - task: PublishTestResults@2 displayName: "Publish test results" inputs: testResultsFormat: "JUnit" testResultsFiles: "./coverage/junit.xml" condition: always() - script: npx codecov -F macOS displayName: "Upload coverage report" env: { CODECOV_TOKEN: $(CODECOV_TOKEN) } - script: sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain Wrapbox.cer displayName: "Add certificate as trusted" - script: yarn dist --x64 displayName: "Build & publish" condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) env: { GH_TOKEN: $(GH_TOKEN), CSC_LINK: $(CSC_LINK), CSC_KEY_PASSWORD: $(CSC_KEY_PASSWORD), } - script: yarn build --x64 displayName: "Build" condition: and(succeeded(), ne(variables['Build.SourceBranch'], 'refs/heads/master')) - task: PublishBuildArtifacts@1 displayName: "Upload artifacts" inputs: PathtoPublish: "$(Build.SourcesDirectory)/release-builds" ArtifactName: Release - task: PublishBuildArtifacts@1 displayName: "Upload image snapshots" condition: always() inputs: PathtoPublish: "$(Build.SourcesDirectory)/tests/e2e/__image_snapshots__" ArtifactName: Snaphots - job: Windows timeoutInMinutes: 15 pool: vmImage: "vs2017-win2016" steps: - task: NodeTool@0 displayName: "Use Node 10" inputs: versionSpec: 10.x - script: yarn displayName: "Yarn install" env: { PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true } - script: yarn lint displayName: "Lint" - script: yarn cover displayName: "Run tests with coverage report" - task: PublishTestResults@2 displayName: "Publish test results" inputs: testResultsFormat: "JUnit" testResultsFiles: "./coverage/junit.xml" condition: always() - script: npx codecov -F Windows displayName: "Upload coverage report" env: { CODECOV_TOKEN: $(CODECOV_TOKEN) } - script: yarn dist --x64 displayName: "Build & publish" condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) env: { GH_TOKEN: $(GH_TOKEN), CSC_LINK: $(CSC_LINK), CSC_KEY_PASSWORD: $(CSC_KEY_PASSWORD), } - script: yarn build --x64 displayName: "Build" condition: and(succeeded(), ne(variables['Build.SourceBranch'], 'refs/heads/master')) - task: PublishBuildArtifacts@1 displayName: "Upload artifacts" inputs: PathtoPublish: "$(Build.SourcesDirectory)/release-builds" ArtifactName: Release - task: PublishBuildArtifacts@1 displayName: "Upload image snapshots" condition: always() inputs: PathtoPublish: "$(Build.SourcesDirectory)/tests/e2e/__image_snapshots__" ArtifactName: Snaphots