# AppVeyor configuration for CI Builds of ICU4C.

image: Visual Studio 2017
platform: x64

# Don't clone the entire repo.
clone_depth: 1

# Cache things between builds to speed things up and save bandwidth.
cache:
  - c:\icu-ci-cache

# Notes:
#  - The VS2017 build is disabled (commented out) below, as we build both VS2015 and VS2017
#    on Azure Pipelines instead, since that is much faster.
#
#  - For the Cygwin build, the CYG_MIRROR URL below is from the "Cygwin Time Machine" archive,
#    and that URL maps to the 64-bit version of Cygwin 2.11.2-1 (with timestamp 1550062412).
#    This was the last release of Cygwin 2.11 before version 3.0.0 was released.
#    See: http://www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html
#
#    Note: The archived Cygwin repo does not keep or retain any file signature files, so we
#    must use the "-X" or "--no-verify" option below in the setup command.

environment:
  global:
    ICU_CI_CACHE: c:\icu-ci-cache
    CYG_URL: https://cygwin.com/setup-x86_64.exe
    CYG_MIRROR: http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2019/02/13/045332
    CYG_PACKAGES: automake,gcc-core,gcc-g++,make,pkg-config,perl,python3
    CYG_ROOT: c:\cygwin-root
    CYG_CACHE: '%ICU_CI_CACHE%\cygwin64'
    CYG_CACHED_SETUP: '%CYG_CACHE%\setup.exe'

  matrix:
    - BUILDSYSTEM: cygwin64-gcc
      CC: gcc
      CXX: g++
      APPVEYOR_SAVE_CACHE_ON_ERROR: true
#    - BUILDSYSTEM: VS2017
#      configuration: Release
#      APPVEYOR_CACHE_SKIP_RESTORE: true
#      APPVEYOR_CACHE_SKIP_SAVE: true

for:
  -
    matrix:
      only:
        - BUILDSYSTEM: cygwin64-gcc

    install:
      - ps: >-
          if ( !(Test-Path "${env:CYG_CACHED_SETUP}" -NewerThan (Get-Date).AddDays(-7)) )
          {
            Write-Host "Cached Cygwin setup does not exist or is older than 7 days, downloading from external site."
            New-Item -Force -Type Directory $env:CYG_CACHE
            Invoke-WebRequest $env:CYG_URL -OutFile $env:CYG_CACHED_SETUP
          }
      - cmd: >-
          %CYG_CACHED_SETUP% --no-verify --quiet-mode --no-shortcuts --no-startmenu --no-desktop --upgrade-also --only-site --site "%CYG_MIRROR%" --root "%CYG_ROOT%"  --local-package-dir "%CYG_CACHE%" --packages "%CYG_PACKAGES%"

    # Check that we have a working Cygwin environment before building.
    before_build:
      - "%CYG_ROOT%\\bin\\sh -lc 'echo Hello'"
      - "%CYG_ROOT%\\bin\\sh -lc 'uname -a'"

    build_script:
      - '%CYG_ROOT%\\bin\\bash -lc "cd $(cygpath ${APPVEYOR_BUILD_FOLDER}) && cd icu4c/source && ./runConfigureICU Cygwin && make check"'

#  -
#    matrix:
#      only:
#        - BUILDSYSTEM: VS2017
#
#    build:
#      project: icu4c/source/allinone/allinone.sln
#
#    test_script:
#      - icu4c/source/allinone/icucheck.bat x64 Release
