# AppVeyor configuration for CI Builds of ICU4C.

image: Visual Studio 2017
platform: x64

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

# 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 used to use the "Cygwin Time Machine" archive
#    in order to pull a previous version of Cygwin, v2.11.2-1 (with timestamp 1550062412).
#    This was done as version 3 had issues and didn't build at all.
#    The previous URL was:
#      http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2019/02/13/045332
#
#    In order to speed the builds up we use the "-X" or "--no-verify" option to skip checking
#    the signatures on packages.

environment:
  global:
    ICU_CI_CACHE: c:\icu-ci-cache
    CYG_URL: https://cygwin.com/setup-x86_64.exe
    CYG_MIRROR: http://mirrors.kernel.org/sourceware/cygwin/
    CYG_PACKAGES: automake,gcc-core,gcc-g++,make,pkg-config,perl,python3
    CYG_ROOT: c:\cygwin-root
    CYG_CACHE: '%ICU_CI_CACHE%\cygwin64-v3'
    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
