Feature #1109

User ability to request a build from Jenkins

Added by Robin Mills about 2 years ago. Updated about 1 year ago.

Status:ClosedStart date:23 Aug 2015
Priority:NormalDue date:
Assignee:Robin Mills% Done:

100%

Category:buildEstimated time:120.00 hours
Target version:0.26

Related issues

Related to Exiv2 - Feature #679: Provide 64bit exiv2 Windows Executable for download Closed 03 Feb 2010

Associated revisions

Revision 3943
Added by Robin Mills about 2 years ago

#1109. First stab at the UI for the build server.

Revision 3944
Added by Robin Mills about 2 years ago

#1109 Adding JavaScript logic to UI. Estimate build time.

Revision 3946
Added by Robin Mills about 2 years ago

#1109: UI/JavaScript refinement.

Revision 3947
Added by Robin Mills about 2 years ago

#1109 More UI/JavaScript refinement to enable/disable the reset button.

Revision 3959
Added by Robin Mills about 2 years ago

#1109 Support for Visual Studio 2003/5/8/10/12/13/15

Revision 4108
Added by Robin Mills almost 2 years ago

#1109 and #1041 Added documentation and log files to the published builds.

Revision 4109
Added by Robin Mills almost 2 years ago

#1109 and #1041 Corrections to ReadMe.txt.

I still haven't persuaded cygwin to link correctly. Something horribly wrong. I've realised that the buildserver sshd is 32 bit and therefore builds a 32 bit library. I might attempt the configure sshd to run cygwin64, however it took a lot of effort to get everything to build over sshd, I'm reluctant to modify anything about sshd. I'll feel differently when I work on this tomorrow.

Revision 4110
Added by Robin Mills almost 2 years ago

#1109 and #1041 More corrections to ReadMe.txt

I used regedit (run as administrator) to change the Windows services to run c:\cygwin64\bin\cygrunsrv.exe and sshd restarted effortlessly in 64 bits. samples/exifprint.cpp compiles/links/runs as documented. Very pleased.

Revision 4111
Added by Robin Mills almost 2 years ago

#1109 and #1041 Documentation corrections. First cut of buildserver/test_daily.sh script

Revision 4112
Added by Robin Mills almost 2 years ago

#1109 and #1041 Detab script

Revision 4113
Added by Robin Mills almost 2 years ago

#1109 and #1041 Work in progress. Adding linux/cygwin/msvc support to test_daily.sh

Revision 4114
Added by Robin Mills almost 2 years ago

#1109 and #1041 Always build 64 bit libraries.

Revision 4115
Added by Robin Mills almost 2 years ago

#1109 and #1041 Fixes for msvc

Revision 4117
Added by Robin Mills almost 2 years ago

#1109 and #1041. Use /usr/local/bin/cmake to build (because I can guarantee it on the buildserver). Documentation Update.

Revision 4118
Added by Robin Mills almost 2 years ago

#1109 and #1041 Only use /usr/local/bin/curl because I've built and installed 7.45.0 there.

Revision 4119
Added by Robin Mills almost 2 years ago

#1109 and #1041 Use xmllint -html to parse output from webserver.

Revision 4120
Added by Robin Mills almost 2 years ago

#1109 and #1041 Process the last build when there's more than 1.

Revision 4121
Added by Robin Mills almost 2 years ago

#1109 and #1041. Reinstate recursive cygwin bash

Revision 4122
Added by Robin Mills almost 2 years ago

#1109 and #1041 Debugging cygwin/jenkins_build.sh I don't know why this has broken as it has been working perfectly for at least a year.

Revision 4123
Added by Robin Mills almost 2 years ago

#1109 and #1041. Don't call cygwin recursively. I replaced c:\cygwin yesterday with 64bit cygwin to avoid the Windows10 fork/crash. Use CXXFLAGS=-m64 - just like unix.

Revision 4124
Added by Robin Mills almost 2 years ago

#1109 and #1041 Move scripts to contrib/buildserver

Revision 4125
Added by Robin Mills almost 2 years ago

#1109 and #1041 Adding cmake_daily.sh and testDailyAll.sh

Revision 4126
Added by Robin Mills almost 2 years ago

#1109 and #1041 Documentation update

Revision 4127
Added by Robin Mills almost 2 years ago

#1109 and #1041 Adding contrib/buildserver/spread which runs from test-cmake-daily to update links in builds/Categorized

Revision 4128
Added by Robin Mills almost 2 years ago

#1109 and #1041 Simplification of daily cmake build/test/publish/categorize (Work in Progress)

Revision 4129
Added by Robin Mills almost 2 years ago

#1109 and #1041 Rename categorize as categorize.sh Documentation update.

Revision 4130
Added by Robin Mills almost 2 years ago

#1109 and #1041. Factored out common code into functions.so Documentation update.

Revision 4131
Added by Robin Mills almost 2 years ago

#1109 and #1041. Correction to r4130

Revision 4132
Added by Robin Mills almost 2 years ago

#1109 and #1041 Update to jenkins_build.sh surprise: msvc build did not execute. The "what kind of build is this?" code has been in service for about 1 year.

Revision 4137
Added by Robin Mills almost 2 years ago

#1109 and #1041 categorize.sh rewritten

Revision 4139
Added by Robin Mills almost 2 years ago

#1109 Modified cmake_daily to build multiple using more than one version of Visual Studio. Added (untested) mingw support.

Revision 4140
Added by Robin Mills almost 2 years ago

#1109. Correction to r4139

Revision 4141
Added by Robin Mills almost 2 years ago

#1109. Build and test Visual Studio 2005/2008/2010/2012/2013/2015 x64/Win32

Revision 4142
Added by Robin Mills almost 2 years ago

#1109. Code polishing and correction to r4141

Revision 4143
Added by Robin Mills almost 2 years ago

#1109. Correction to r4142.

Revision 4144
Added by Robin Mills almost 2 years ago

#1109. Code polishing and simplification.

Revision 4145
Added by Robin Mills over 1 year ago

#1109 and #1041 Changes for Parallels 11.0 running on buildserver (Parallels 11 is a Christmas to myself).

Revision 4146
Added by Robin Mills over 1 year ago

#1109 and #1041 Build with cmakeBuildAll.cmd

Revision 4147
Added by Robin Mills over 1 year ago

#1109. Documentation update. daily build uses cmakeBuildAll to generate 12 Visual Studio builds.

Revision 4246
Added by Robin Mills over 1 year ago

#1109 Change contrib/buildserver/test_daily.sh to report PLATFORM

Revision 4505
Added by Robin Mills about 1 year ago

#1109 Last role of the dice to get CMake/MinGW to work together.

Revision 4507
Added by Robin Mills about 1 year ago

#1109 Updated test_daily.sh to respect the MinGW/32 build

Revision 4508
Added by Robin Mills about 1 year ago

#1109 Work in Progress on MinGW/32 daily build

Revision 4509
Added by Robin Mills about 1 year ago

#1109 Adding notes to explain the troubles getting CMake/MinGW/Qt 5.6 to work together.

Revision 4512
Added by Robin Mills about 1 year ago

#1109 Fix cmake_daily.sh to avoid getting two mingw bundles

Revision 4513
Added by Robin Mills about 1 year ago

#1109 Work in Progress on MinGW/32 daily build.

Revision 4514
Added by Robin Mills about 1 year ago

#1109 Working in Progress on MinGW/32 daily build.

Revision 4515
Added by Robin Mills about 1 year ago

#1109 Work in Progress on MinGW/32 daily build.

Revision 4516
Added by Robin Mills about 1 year ago

#1109 Work in Progress on MinGW/32 daily build.

Revision 4517
Added by Robin Mills about 1 year ago

#1109 Work in Progress on MinGW/32 daily build.

Revision 4518
Added by Robin Mills about 1 year ago

#1109 Work in Progress on MinGW/32 daily build.

Revision 4519
Added by Robin Mills about 1 year ago

#1109 Work in Progress on MinGW/32 daily build.

Revision 4521
Added by Robin Mills about 1 year ago

#1109 Work in Progress on MinGW/32 daily build.

Revision 4522
Added by Robin Mills about 1 year ago

#1109 Work in Progress on MinGW/32 daily build. With good fortune, this is now complete!

Revision 4523
Added by Robin Mills about 1 year ago

#1109 Work in Progress on MinGW/32 daily build. Polishing.

Revision 4526
Added by Robin Mills about 1 year ago

#1109 MinGW/32 daily build. Final polish. Done!

Revision 4527
Added by Robin Mills about 1 year ago

#1109 MinGW/32 daily build. Revisions following a walk-through with Sai Tallem on Skype.

Revision 4528
Added by Robin Mills about 1 year ago

#1109 MinGW/32 daily build. Fix GCC warning on MinGW/32 gcc 4.9.2

Revision 4530
Added by Robin Mills about 1 year ago

#1109 CMake changes for MinGW. I have not yet succeeded in get CMake/MinGW to work.

Revision 4532
Added by Robin Mills about 1 year ago

#1109 remove -std=c++98 in buildserver scripts. This is now part of CMakeLists.txt (r4530) and ./configure (r4531)

Revision 4533
Added by Robin Mills about 1 year ago

#1109 MinGW/32 daily build. Documentation update to reflect r4530 and r4531

Revision 4534
Added by Robin Mills about 1 year ago

#1188 and #1109 Correction to r4530 and r4531 to fix cygwin build-breaker (gnu++98 required for snprintf support)

Revision 4537
Added by Robin Mills about 1 year ago

#1109 MinGW/32 daily build. Avoid -svn-0-date builds. Changes to test suite for mingw.

Revision 4538
Added by Robin Mills about 1 year ago

#1109 Work in Progress on MinGW/32. Put stdout into binary mode for options pC -pX, -eABC, eABC

Revision 4543
Added by Robin Mills about 1 year ago

#1109 MinGW/32. Correction to r4538 for all versions of msvc.

Revision 4545
Added by Robin Mills about 1 year ago

#1109 MinGW/32. Correction to r4543 for systems which are neither MINGW nor MSVC

Revision 4546
Added by Robin Mills about 1 year ago

#1109 MinGW/32. Correction to r4543 for systems which are neither MINGW nor MSVC

Revision 4549
Added by Robin Mills 12 months ago

#1109 MinGW/GCC should not set -std=gnu++98 because this causes 64 bit build to not link libpthreads! (on several tool chains)

Revision 4594
Added by Robin Mills 12 months ago

#1109 Fixes in dailyCMake.sh

Revision 4595
Added by Robin Mills 12 months ago

#1109 Fix in dailyCMake.sh for MinGW

Revision 4597
Added by Robin Mills 12 months ago

#1109 Work-in-progress. First cut of categorize.py to replace categorize.sh. This which will improve dailyBuild performance by about 15 minutes.

History

#1 Updated by Robin Mills about 2 years ago

  • Estimated time set to 50.00

#2 Updated by Robin Mills about 2 years ago

  • Target version changed from 0.26 to 1.0

I'm deferring this to v1.0. This will probably get done in 2016, however I don't want to commit that it'll be available for v0.26.

#3 Updated by Robin Mills almost 2 years ago

  • % Done changed from 0 to 20

I've made a good start on this and designed the UI. I've also made strong progress with #1041 (CMake/Visual Studio). I now have a script to rebuild/test exiv2 with visual studio 2005/8/10/12/13/15) in x86 and x64. This script delivers to a 'dlist' directory with all 12 builds. I'm thinking that I can use this to deliver a 'daily' and 'monthly' build of exiv2 and that might be sufficient for the purpose. I'm setting Done to 20 to reflect this progress.

#4 Updated by Robin Mills almost 2 years ago

  • Target version changed from 1.0 to 0.26
  • % Done changed from 20 to 80
  • Estimated time changed from 50.00 to 100.00

I'm going to advance this to 80% complete. The work on #1041 has taken up a lot of time (about 4 weeks). However, it's much more extensive than I anticipated. I've added a daily/weekly/monthly build to jenkins and publish the builds for user collection.

Perhaps in v0.27, I will continue to develop the UI to enable a user to precisely define the build required. However for v0.26, the work done in #1041 is a significant new service for users. The work complete does enable a user to 'request a build from jenkins'.

I'm also going to increase the estimate hours to 100. #1041 is already 100 hours. So, with both set at 100 hours and 80% complete, that does respect the 160 hours (4 weeks) that I have invested in this matter. I'm also changing the target to 0.26.

#5 Updated by Robin Mills over 1 year ago

  • % Done changed from 80 to 90

#6 Updated by Robin Mills over 1 year ago

  • % Done changed from 90 to 80

Run into lots of issues with CMake and some versions of Visual Studio. More work ahead.

#7 Updated by Robin Mills over 1 year ago

  • % Done changed from 80 to 90

I had a quite a lot of trouble getting all 12 MSVC builds to execute with CMake and to pass the daily_test.sh. It's been stable now for two weeks. I think CMake/Visual Studio is more-or-less complete. This has been a lot of work, however it is one of the major new features of the v0.26 release.

#8 Updated by Robin Mills over 1 year ago

  • Status changed from Assigned to Closed
  • % Done changed from 90 to 100

The daily builds are being reliably generated by the buildserver on all supported platforms.

#9 Updated by Robin Mills about 1 year ago

  • Estimated time changed from 100.00 to 120.00

In response to a discussion with Saiteja Tallam on the Forum concerning Qt/MinGW/32, I've extended the nightly build to publish those builds.

http://dev.exiv2.org/boards/3/topics/2705

This was quite difficult for a couple of reasons:

1) It was a fight to get cmake built for MinGW/32

Although I get cmake built, it generates makefiles that fail to build the code.
I've documented the status in contrib/buildserver/cmake_daily.sh

2) I "switched horses" and perform the nightly build for MinGW using autotools
This has taken quite a serious effort to debug as the rest of the nightly build uses CMake.
Creating and testing the dist bundle is tough challenge as the build time is about 90 minutes.

The effort to perform a nightly build with autotools could be very useful in future and could be quickly used to build and test 32 bit Linux or Cygwin libraries. Or static libraries. Or special builds such as web-ready. Of course these builds could be performed with CMake. However, MinGW builds will have to be performed with Autotools until more work is undertaken to get cmake to work with MinGW.

Also available in: Atom PDF

Redmine Appliance - Powered by TurnKey Linux