# The config is used to bake appveyor images, not for running CI jobs.
# The config expects the following environment variables to be set:
#  - "APPVEYOR_BAKE_IMAGE" e.g. 'electron-99.0.4767.0'. Name of the image to be baked.
#      Typically named after the Chromium version on which the image is built.
#      This can be set dynamically in the prepare-appveyor script.

version: 1.0.{build}
build_cloud: electronhq-16-core
image: e-110.0.5451.0
environment:
  GIT_CACHE_PATH: C:\Users\appveyor\libcc_cache
  ELECTRON_OUT_DIR: Default
  ELECTRON_ENABLE_STACK_DUMPING: 1
  MOCHA_REPORTER: mocha-multi-reporters
  MOCHA_MULTI_REPORTERS: mocha-appveyor-reporter, tap
  GOMA_FALLBACK_ON_AUTH_FAILURE: true
  DEPOT_TOOLS_WIN_TOOLCHAIN: 0
  PYTHONIOENCODING: UTF-8
# Uncomment these lines and set APPVEYOR_RDP_PASSWORD in project settings to enable RDP before bake begins
# install:
#  - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))  
build_script:
  # Uncomment/change the following line if the hard drive/partition size needs to change
  # - ps: Resize-Partition -DriveLetter C -Size (256GB) # ensure initial partition size
  - git config --global core.longpaths true
  - cd ..
  - ps: >-
      if (-not (Test-Path -Path .\src)) {
        New-Item -Path .\src -ItemType Directory
      }
  - ps: git clone --depth=1 https://chromium.googlesource.com/chromium/tools/depot_tools.git  
  - ps: $env:PATH="$pwd\depot_tools;$env:PATH"  
  - update_depot_tools.bat
  - ps: Move-Item $env:APPVEYOR_BUILD_FOLDER -Destination src\electron
  # Uncomment the following line if windows deps change
  # - src\electron\script\setup-win-for-dev.bat
  - >-
      gclient config
      --name "src\electron"
      --unmanaged
      %GCLIENT_EXTRA_ARGS%
      "https://github.com/electron/electron"
  - ps: cd src\electron
  - ps: node script\generate-deps-hash.js
  - ps: $depshash = Get-Content .\.depshash -Raw
  - ps: Copy-Item -path .\.depshash -destination ..\.depshash
  - ps: cd ..\..
  - gclient sync --with_branch_heads --with_tags --nohooks
  - ps: regsvr32 /s "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\DIA SDK\bin\amd64\msdia140.dll"
  - ps: |
      $env:appveyor_user = "appveyor"

      $env:appveyor_password = [Guid]::NewGuid().ToString('B')

      Set-LocalUser -Name $env:appveyor_user -Password (ConvertTo-SecureString -AsPlainText $env:appveyor_password -Force) -PasswordNeverExpires:$true

      iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/build-images/master/scripts/Windows/enable_autologon.ps1'))
on_image_bake:
  - ps: >-
      echo "Baking image: $env:APPVEYOR_BAKE_IMAGE at dir $PWD"
  - ps: Remove-Item -Recurse -Force $pwd\depot_tools
  - ps: Remove-Item -Recurse -Force $pwd\src\electron
# Uncomment these lines and set APPVEYOR_RDP_PASSWORD in project settings to enable RDP after bake is done
#on_finish:
#  - ps: >-
#       $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))