# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml

name: $(Build.SourceVersion)
jobs:
- job: Linux
  timeoutInMinutes: 0
  pool:
    vmImage: 'Ubuntu 16.04'

  variables:
    STAGING_DIRECTORY: /home/vsts/STAGING
    STAGING_DIRECTORY_UNIX: /home/vsts/STAGING
    ESY__CACHE_INSTALL_PATH: /home/vsts/.esy/3_____________________________________________________________________/i
    ESY__CACHE_SOURCE_TARBALL_PATH: /home/vsts/.esy/source/i
    # ESY__NPM_ROOT: /opt/hostedtoolcache/node/8.14.0/x64/lib/node_modules/esy

  steps:
  - template: .ci/use-node.yml
  - template: .ci/restore-build-cache.yml
  - template: .ci/esy-build-steps.yml
  - template: .ci/publish-build-cache.yml

- job: MacOS
  timeoutInMinutes: 0
  pool:
    vmImage: 'macOS 10.13'

  variables:
    STAGING_DIRECTORY: /Users/vsts/STAGING
    STAGING_DIRECTORY_UNIX: /Users/vsts/STAGING
    ESY__CACHE_INSTALL_PATH: /Users/vsts/.esy/3____________________________________________________________________/i
    ESY__CACHE_SOURCE_TARBALL_PATH: /Users/vsts/.esy/source/i
    # ESY__NPM_ROOT: /usr/local/lib/node_modules/esy

  steps:
  - template: .ci/use-node.yml
  - template: .ci/restore-build-cache.yml
  - template: .ci/esy-build-steps.yml
  - template: .ci/publish-build-cache.yml

- job: Windows
  timeoutInMinutes: 0
  pool:
    vmImage: 'vs2017-win2016'

  variables:
    STAGING_DIRECTORY: C:\Users\VssAdministrator\STAGING
    STAGING_DIRECTORY_UNIX: /C/Users/VssAdministrator/STAGING
    ESY__CACHE_INSTALL_PATH: /C/Users/VssAdministrator/.esy/3_/i
    ESY__CACHE_SOURCE_TARBALL_PATH: /C/Users/VssAdministrator/.esy/source/i
    # ESY__NPM_ROOT: /C/npm/prefix/node_modules/esy

  steps:
  - template: .ci/use-node.yml
  - template: .ci/restore-build-cache.yml
  - template: .ci/esy-build-steps.yml
  - template: .ci/publish-build-cache.yml

- job: Release
  timeoutInMinutes: 0
  displayName: Release
  dependsOn:
      - Linux
      - MacOS
      - Windows
  condition: succeeded()
  pool:
     vmImage: ubuntu-16.04
  steps:
    - task: PublishBuildArtifacts@1
      displayName: 'Release Package'
      inputs:
          PathtoPublish: '.'
          ArtifactName: npm-package
