summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQian Hong <qhong@codeweavers.com>2016-06-26 14:41:16 +0800
committerCorinna Vinschen <corinna@vinschen.de>2016-06-28 13:42:59 +0200
commitf8a7ef17fe58655b24cd636d069078ac651fbe15 (patch)
tree4330362959c044a46ee36d719359d3a57377eadf
parent8a603a697f536c5fa88a8af562250c9a3c9f9871 (diff)
downloadcygnal-f8a7ef17fe58655b24cd636d069078ac651fbe15.tar.gz
cygnal-f8a7ef17fe58655b24cd636d069078ac651fbe15.tar.bz2
cygnal-f8a7ef17fe58655b24cd636d069078ac651fbe15.zip
Continuous Integration: Add Tea CI build configuration.
-rw-r--r--.drone.yml58
1 files changed, 58 insertions, 0 deletions
diff --git a/.drone.yml b/.drone.yml
new file mode 100644
index 000000000..ad512a031
--- /dev/null
+++ b/.drone.yml
@@ -0,0 +1,58 @@
+# 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