variables: YARN_CACHE_FOLDER: $(Pipeline.Workspace)/.yarn AZURE_CACHE_FOLDER: $(Pipeline.Workspace)/.azure-cache pr: - master - releases/* trigger: branches: include: - '*' tags: include: - "*" jobs: - job: Windows pool: vmImage: windows-2019 strategy: matrix: node_12.x: node_version: 12.x steps: - powershell: | $CI_BUILD_TAG = git describe --tags Write-Output ("##vso[task.setvariable variable=CI_BUILD_TAG;]$CI_BUILD_TAG") displayName: 'Set the tag name as an environment variable' condition: "and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))" - task: NodeTool@0 inputs: versionSpec: $(node_version) displayName: Install Node.js - task: CacheBeta@0 inputs: key: yarn | $(Agent.OS) | yarn.lock path: $(YARN_CACHE_FOLDER) cacheHitVar: CACHE_RESTORED displayName: Cache Yarn packages - script: make deps displayName: Install dependencies - script: make integration-win displayName: Run integration tests - script: make build condition: "and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))" displayName: Build env: WIN_CSC_LINK: $(WIN_CSC_LINK) WIN_CSC_KEY_PASSWORD: $(WIN_CSC_KEY_PASSWORD) GH_TOKEN: $(GH_TOKEN) - job: macOS pool: vmImage: macOS-10.14 strategy: matrix: node_12.x: node_version: 12.x steps: - script: CI_BUILD_TAG=`git describe --tags` && echo "##vso[task.setvariable variable=CI_BUILD_TAG]$CI_BUILD_TAG" displayName: Set the tag name as an environment variable condition: "and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))" - task: NodeTool@0 inputs: versionSpec: $(node_version) displayName: Install Node.js - task: CacheBeta@0 inputs: key: cache | $(Agent.OS) | yarn.lock path: $(AZURE_CACHE_FOLDER) cacheHitVar: CACHE_RESTORED displayName: Cache Yarn packages - bash: | mkdir -p "$YARN_CACHE_FOLDER" tar -xzf "$AZURE_CACHE_FOLDER/yarn-cache.tar.gz" -C / displayName: "Unpack cache" condition: eq(variables.CACHE_RESTORED, 'true') - script: make deps displayName: Install dependencies - script: make lint displayName: Lint - script: make test displayName: Run tests - script: make integration-mac displayName: Run integration tests - script: make build condition: "and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))" displayName: Build env: APPLEID: $(APPLEID) APPLEIDPASS: $(APPLEIDPASS) CSC_LINK: $(CSC_LINK) CSC_KEY_PASSWORD: $(CSC_KEY_PASSWORD) GH_TOKEN: $(GH_TOKEN) - bash: | mkdir -p "$AZURE_CACHE_FOLDER" tar -czf "$AZURE_CACHE_FOLDER/yarn-cache.tar.gz" "$YARN_CACHE_FOLDER" displayName: Pack cache - job: Linux pool: vmImage: ubuntu-16.04 strategy: matrix: node_12.x: node_version: 12.x steps: - script: CI_BUILD_TAG=`git describe --tags` && echo "##vso[task.setvariable variable=CI_BUILD_TAG]$CI_BUILD_TAG" displayName: Set the tag name as an environment variable condition: "and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))" - task: NodeTool@0 inputs: versionSpec: $(node_version) displayName: Install Node.js - task: CacheBeta@0 inputs: key: cache | $(Agent.OS) | yarn.lock path: $(AZURE_CACHE_FOLDER) cacheHitVar: CACHE_RESTORED displayName: Cache Yarn packages - bash: | mkdir -p "$YARN_CACHE_FOLDER" tar -xzf "$AZURE_CACHE_FOLDER/yarn-cache.tar.gz" -C / displayName: "Unpack cache" condition: eq(variables.CACHE_RESTORED, 'true') - script: make deps displayName: Install dependencies - script: make lint displayName: Lint - script: make test displayName: Run tests - bash: | sudo apt-get update sudo apt-get install libgconf-2-4 conntrack -y curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube sudo minikube start --driver=none displayName: Install integration test dependencies - script: xvfb-run --auto-servernum --server-args='-screen 0, 1600x900x24' make integration-linux displayName: Run integration tests - bash: | sudo chown root:root / sudo apt-get update && sudo apt-get install -y snapd sudo snap install snapcraft --classic echo -n "${SNAP_LOGIN}" | base64 -i -d > snap_login snapcraft login --with snap_login displayName: Setup snapcraft condition: "and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))" env: SNAP_LOGIN: $(SNAP_LOGIN) - script: make build displayName: Build condition: "and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))" env: GH_TOKEN: $(GH_TOKEN) - bash: | mkdir -p "$AZURE_CACHE_FOLDER" tar -czf "$AZURE_CACHE_FOLDER/yarn-cache.tar.gz" "$YARN_CACHE_FOLDER" displayName: Pack cache