# Build configuration for https://tea-ci.org
# Tea CI is a fork of Drone CI with Cygwin/Msys2 support
# Feel free to share Tea CI to more open source developers
# https://docs.tea-ci.org/usage/overview/

debug: true

build:
  stage1:
    image: teaci/cygwin$$arch
    pull: true
    shell: cygwin$$arch
    commands:
      - uname -a
      - id
      - C:/cygwin-installer.exe --site http://mirrors.tea-ci.org/cygwin --local-package-dir Z:/tmp/cygwin -W -P gettext-devel,zlib-devel,libiconv,libiconv-devel,mingw64-i686-gcc-g++,mingw64-i686-zlib,mingw64-x86_64-gcc-core,mingw64-x86_64-gcc-g++,mingw64-x86_64-zlib,dejagnu,dblatex,docbook-xml45,docbook-xsl,xmlto -q &> /dev/null
      - srcdir=`pwd`
      - builddir=/oss/build-stage1
      - installdir=/oss/install-stage1
      - mkdir -p ${builddir} ${installdir}
      - cd ${builddir}
      - ${srcdir}/configure --prefix=${installdir} -v
      - make
      - make install
      - sha1sum ${installdir}/bin/cygwin1.dll /bin/cygwin1.dll
      # FIXME: Is there an easy way to package new Cygwin then install locally using setup_x86{,-64}.exe?
      - cp -vf ${installdir}/bin/cygwin1.dll /bin/cygwin1.dll

  test:
    image: teaci/cygwin$$arch
    pull: true
    shell: /bin/bash # Call from Linux native shell, which is a special bonus of Tea CI.
    commands:
      # In the worst case, new cygwin1.dll might fail to start with exit status 0, which fools the CI as status success.
      # The following test does not rely on cygwin exit status, instead we trust Linux grep result.
      - cygwin$$arch -c "uname -a" | grep CYGWIN_NT
      - cygwin$$arch -c "id" | grep uid
      - cygwin$$arch -c "sha1sum --tag /bin/cygwin1.dll" | grep SHA1

  # Compile Cygwin again using the new cygwin1.dll
  stage2:
    image: teaci/cygwin$$arch
    pull: true
    shell: cygwin$$arch
    commands:
      - srcdir=`pwd`
      - builddir=/oss/build-stage2
      - installdir=/oss/install-stage2
      - mkdir -p ${builddir} ${installdir}
      - cd ${builddir}
      - ${srcdir}/configure --prefix=${installdir} -v
      - make
      - make install

matrix:
  arch:
    - 64
    - 32
