Hi, I'd like to volunteer to maintain a(nother) continuous integration build for Cygwin. Thanks to Jon Turney we recently setup an Appveyor build for Cygwin on Windows. This time I'm proposing a Tea CI build for Cygwin on Wine.
Attached is the build configuration, which includes three parts: The "stage1" part build Cygwin runtime on Cygwin (on Wine), the "test" part copy the new cygwin1.dll to override the current cygwin1.dll, and do some simple test to verify the new runtime dll starts correctly, the "stage2" part rebuild Cygwin using the newly built cygwin1.dll environment as a self test. Here are some examples for build results: - Tea CI detects build failure of cygwin: https://tea-ci.org/fracting/cygwin/112 - Tea CI detects runtime failure of new cygwin1.dll: https://tea-ci.org/fracting/cygwin/110 We've successfully used Tea CI to detect build failure and runtime failure before, which were already reported to upstream, I hope to upstream this build configuration so we could detect those failures even earlier, and I'll volunteer to maintain the build script and monitor the build results. Please consider the patch, let me know anything else I can do. Regarding the new procedure for code contributions to the Cygwin sources, since I've submitted patches to Cygwin before with Cygwin Copyright Assignment signed, I think I'm fine here ;) But anyway I'm happy to declare I provide my patches to Cygwin source under the 2-clause BSD license as https://cygwin.com/ml/cygwin-announce/2016-06/msg00050.html. Thank you! -- Regards, Qian Hong - http://www.winehq.org
From 99067adcd1244042574aee058a201f9432b16529 Mon Sep 17 00:00:00 2001 From: Qian Hong <qh...@codeweavers.com> Date: Sun, 26 Jun 2016 14:41:16 +0800 Subject: [PATCH] Continuous Integration: Add Tea CI build configuration. --- .drone.yml | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .drone.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..ad512a0 --- /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 -- 2.5.0
-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple