# 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 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 -j2 check"'

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