Ticket #8882 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

Add build scripts to be called by our Jenkins jobs.

Reported by: Russell Taylor Owned by: Russell Taylor
Priority: blocker Milestone: Release 3.2
Component: Tools Keywords:
Cc: Blocked By:
Blocking: Tester: Martyn Gigg

Description

This will help us to harmonize the build process across the various builds (incremental/clean, master/develop, different OS's). Instead of entering the script commands directly into the Jenkins configuration, we will just call the script and that will do the work.

Unfortunately, it appears that we will have to have two scripts (Windows and others), and there will be some if tests required, but this should still leave us in a better situation. It should also allow Jenkins matrix builds.

Change History

comment:1 Changed 7 years ago by Russell Taylor

  • Status changed from new to inprogress

Re #8882. First version of a build script for use by *nix slaves.

Changeset: 28150431aede4fa338d2dd336e0c696d375a8fc6

comment:2 Changed 7 years ago by Russell Taylor

Re #8882. OS X bash doesn't like the uppercase conversion.

So we'll just manage without being case insensitive. There are other ways to do it, but it's not worth the trouble.

Changeset: 1cf985e3f29a8cbe542ede3a8e2c87c580b8f1f3

comment:3 Changed 7 years ago by Russell Taylor

Re #8882. Use full paths.

Changeset: fa2bcb689fc34854f50112e2f33f97ee39363a97

comment:4 Changed 7 years ago by Russell Taylor

Re #8882. Make sure to go back to the root directory.

Changeset: 5351d485b075fc80341d47eb764a81aa4a762282

comment:5 Changed 7 years ago by Russell Taylor

Re #8882. Don't remove properties file for time being.

It can mess things up on shared machines.

Changeset: 7aaafe65ad28b85dad6fe859a5bff0dd81dbc37b

comment:6 Changed 7 years ago by Russell Taylor

Re #8882. Just run kernel tests for now.

Changeset: a4a8e61ccac14790a0a0551874a6ca1d6f81f6aa

comment:7 Changed 7 years ago by Russell Taylor

Re #8882. Don't exit cmd.exe if called from another batch script.

Add the /B flag to ensure that control is returned to the calling batch script.

Changeset: aa016da70360fc8279385e1dc5a1aacfc63923da

comment:8 Changed 7 years ago by Russell Taylor

Re #8882. Add initial Windows version of build script.

Only does 64 bit builds for now, and ignores things like Vates, docs & packages.

Changeset: afbd360f6cbf82702c8298ec44e2a555de5749ac

comment:9 Changed 7 years ago by Russell Taylor

Re #8882. Add check for desired architecture.

Changeset: ede246bb18a21508ff712f1666674a653758e79e

comment:10 Changed 7 years ago by Russell Taylor

Re #8882. Get the test the right way around!

Changeset: 3c3bc00b2ad02458b250beed47ec8ad447289c00

comment:11 Changed 7 years ago by Russell Taylor

Re #8882. Give the full path to cmake on Windows.

I'd rather not have to do it this way, but it's not on the path on some slaves that I can't access. I think it should be the same on all machines.

Changeset: 99259f601ffafef06cedfbdc9323a610208afcde

comment:12 Changed 7 years ago by Russell Taylor

Re #8882. Get the spaces right.

Changeset: d81e546a1ca19673291718b256b8275de8ad6762

comment:13 Changed 7 years ago by Russell Taylor

Re #8882. Put the whole generator string in one place.

Changeset: 73bdfc4bf957cda655537f24fb92ab38b2f9f146

comment:14 Changed 7 years ago by Russell Taylor

Re #8882. Don't hard code the architecture into the path.

Changeset: 5869718718394fc2f9e3f92ae9476cd91def5103

comment:15 Changed 7 years ago by Russell Taylor

Re #8882. Build everything.

Changeset: 2539a4369f966ae7a704ce8cb0e02a23b9ffaa13

comment:16 Changed 7 years ago by Russell Taylor

Re #8882. Disable size_t-related warnings on 32 bit compile.

Changeset: 0117a82bb85edaf82c634c5a541a6580cdd66294

comment:17 Changed 7 years ago by Russell Taylor

Re #8882. Temporarily turn off precompiled headers.

The machine I'm testing this on is complaining about running out of heap space. Perhaps this will get around this.

Changeset: a7b07764cf56e466ba8faeb31bff7e5b31d190ef

comment:18 Changed 7 years ago by Russell Taylor

Re #8882. Temporarily turn off precompiled headers.

The machine I'm testing this on is complaining about running out of heap space. Perhaps this will get around this.

Changeset: 8630c3e51ab13e00fca471d8491ef432f3b08b98

comment:19 Changed 7 years ago by Russell Taylor

Re #8882. Disable ubiquitous size_t conversion warning on 32 bit.

Changeset: 5af5275f8080a804e2af84e052b56e053c7a0a0c

comment:20 Changed 7 years ago by Russell Taylor

Re #8882. Trying to get win32 build working.

Changeset: 79e535ee418a3a93af13f20db151d42c855abe91

comment:21 Changed 7 years ago by Russell Taylor

Re #8882. Disable ubiquitous size_t conversion warning on 32 bit.

Changeset: 600a674938d88333d0409f00012334a3162664a9

comment:22 Changed 7 years ago by Russell Taylor

Re #8882. Trying to get win32 build working.

Changeset: a25919f8f7e0f3ab92359bba904667afc4da1192

comment:23 Changed 7 years ago by Russell Taylor

Re #8882. Run all the tests except the MantidPlot ones.

Changeset: c8f4a155ccbbf59c319cfeccc9a69b9430cbd9a5

comment:24 Changed 7 years ago by Russell Taylor

Re #8882. Increase the timeout to 60s.

It's a bit distressing to have to do this as unit tests shouldn't take anything like that long!

Changeset: 975d9c5adabd1f54debee8165ae8f463868d6c7b

comment:25 Changed 7 years ago by Russell Taylor

Re #8882. Set MAKE_VATES to ON.

Add cmake argument that points to paraview, with the location of paraview being held in an environment variable that needs to be configured on each build slave machine.

Changeset: 175650cdccec3f55a37397b068a201bc556626f0

comment:26 Changed 7 years ago by Russell Taylor

Re #8882. Speed up a test that was surely doing more than it needed to.

Changeset: 98ac750796ca186626d2030bdf2aadd7db6d262e

comment:27 Changed 7 years ago by Russell Taylor

Re #8882. Unfortunately, it appears that we can't have a timeout.

It turns out that we currently only set a timeout on Linux builds. If we have it globally, some tests time out on both Mac & Windows.

Changeset: 186429c48089b54fdb8daba64b5e6fc945c8ba35

comment:28 Changed 7 years ago by Russell Taylor

Re #8882. Run the unit tests in random order.

Otherwise the ctest default is to run the slowest tests first, which tend to be the ones hitting the disk so they all fight for IO at the same time and get even slower. This should mitigate against that.

Changeset: 7488c35adbd6cf54807f12793ef5bd598802ee3f

comment:29 Changed 7 years ago by Russell Taylor

Re #8882. Add the MantidPlot tests.

Changeset: 2cfd5c91dc41a4fbeebdeb13e1c61b409a1bbcc8

comment:30 Changed 7 years ago by Russell Taylor

Re #8882. Add actions for clean builds.

Clean builds are detected by looking for "clean" in the job name. If found, the build directory is wiped out at the start to make it a completely clean build. In addition, install kits are build for clean builds (& not otherwise).

Changeset: ac150eb0278691a0110d9ab5fd860ecfc8d08c2b

comment:31 Changed 7 years ago by Russell Taylor

Re #8882. Set the default to no Qt assistant docs on the Mac.

They don't work there at present, so it's much more sensible to set this as the default globally rather than in individual build jobs.

Changeset: 9581aa7dbc6e16ceb2bc33a67eb2cef4f5e05a7f

comment:32 Changed 7 years ago by Russell Taylor

Re #8882. Build the Qt Assistant docs if appropriate.

Changeset: 8985f8b3ec75eab606ff855cc19327139cf161ea

comment:33 Changed 7 years ago by Russell Taylor

Re #8882. Make sure we're using bash.

Changeset: d10d8e63d6004eedaf7eb30153125f194441ae7b

comment:34 Changed 7 years ago by Russell Taylor

Re #8882. Quick test to see effect of not checking for paraview.

Hoping that tests will run faster on the mac.

Changeset: 934b102902c1ab2779fc1ec2c417793642ff0003

comment:35 Changed 7 years ago by Russell Taylor

Re #8882. Enable script to be run if called from another directory.

Changeset: 973361d6f9ecf8cae4f3e90e62614c81fbbb4fa6

comment:36 Changed 7 years ago by Russell Taylor

Re #8882. Use the NSIS installer by default and always.

The MSI installer is long-dead so we don't need to leave the option hanging around (especially as the default). The -v option is still left in the list of possible flags for backwards compatibility, but it does nothing.

Changeset: f728e0e07a3cc1836bd5a26026c56487418f6677

comment:37 Changed 7 years ago by Russell Taylor

Re #8882. Generalise the path to the stresstesting module.

So that this script can be run from a different working directory.

Changeset: a5e0567f0ca01e4d32f496a07c8fbf4a63e9499b

comment:38 Changed 7 years ago by Russell Taylor

Re #8882. Forgot the import.

Changeset: 7459e32507e6f7358de19193be14266f29ded24d

comment:39 Changed 7 years ago by Russell Taylor

Re #8882. Also forgot a directory separator.

Changeset: eeb9dd9295a6d4ff782a1670fd4e5358e6bf5eab

comment:40 Changed 7 years ago by Russell Taylor

Re #8882. Add a file for any notes about the build scripts.

Changeset: fba4548c53f81cfdde7b0cda4eb0ba46bdd2f500

comment:41 Changed 7 years ago by Russell Taylor

Re #8882. First version of a build script for use by *nix slaves.

Changeset: 682ebd3ccd4a4c6b71e1bad6568e6db9424b1e45

comment:42 Changed 7 years ago by Russell Taylor

Re #8882. OS X bash doesn't like the uppercase conversion.

So we'll just manage without being case insensitive. There are other ways to do it, but it's not worth the trouble.

Changeset: 6ceddf78efd21f70fb5765709f8a1bdfa860318d

comment:43 Changed 7 years ago by Russell Taylor

Re #8882. Use full paths.

Changeset: bf3b7ee614ae95e674030b292ee9214a12af771c

comment:44 Changed 7 years ago by Russell Taylor

Re #8882. Make sure to go back to the root directory.

Changeset: d6c863995ba68268609538c736461dfeee98058a

comment:45 Changed 7 years ago by Russell Taylor

Re #8882. Don't remove properties file for time being.

It can mess things up on shared machines.

Changeset: 0be84efd449677a0a2d42129e86edee1abaf90da

comment:46 Changed 7 years ago by Russell Taylor

Re #8882. Just run kernel tests for now.

Changeset: 8085bfaf974e4a781ff5b1f8d7ca96043483072e

comment:47 Changed 7 years ago by Russell Taylor

Re #8882. Don't exit cmd.exe if called from another batch script.

Add the /B flag to ensure that control is returned to the calling batch script.

Changeset: 0668ea46d4daeb1e61dfb678a954104d76de2cd5

comment:48 Changed 7 years ago by Russell Taylor

Re #8882. Add initial Windows version of build script.

Only does 64 bit builds for now, and ignores things like Vates, docs & packages.

Changeset: 5ab3f84430ff15fb9ca51a2a0a8ab2f36381fabb

comment:49 Changed 7 years ago by Russell Taylor

Re #8882. Add check for desired architecture.

Changeset: 1d1d7fba49a8e4778c8f886e860004470590d350

comment:50 Changed 7 years ago by Russell Taylor

Re #8882. Get the test the right way around!

Changeset: 155ad572ade1158733b4dc6278b7147cb5d6b765

comment:51 Changed 7 years ago by Russell Taylor

Re #8882. Give the full path to cmake on Windows.

I'd rather not have to do it this way, but it's not on the path on some slaves that I can't access. I think it should be the same on all machines.

Changeset: 23b7c42f9df185934e486d575caa675beb26687d

comment:52 Changed 7 years ago by Russell Taylor

Re #8882. Get the spaces right.

Changeset: 1bb16184ea2f89fba7866fac418c0a4f256ebfc4

comment:53 Changed 7 years ago by Russell Taylor

Re #8882. Put the whole generator string in one place.

Changeset: d049310529e6b0213431eabdd152f8fe7102b92a

comment:54 Changed 7 years ago by Russell Taylor

Re #8882. Don't hard code the architecture into the path.

Changeset: 064599b3dd29332eefa52f91f6fe941ad417e37e

comment:55 Changed 7 years ago by Russell Taylor

Re #8882. Build everything.

Changeset: 83377012c2a527d85df590d38a2a88a9ec21433a

comment:56 Changed 7 years ago by Russell Taylor

Re #8882. Disable ubiquitous size_t conversion warning on 32 bit.

Changeset: b80c5fd617542cfb7245076d107f6bbf823df7de

comment:57 Changed 7 years ago by Russell Taylor

Re #8882. Run all the tests except the MantidPlot ones.

Changeset: 368568e2ccc95ca90255b04daf10d107178f7fd2

comment:58 Changed 7 years ago by Russell Taylor

Re #8882. Increase the timeout to 60s.

It's a bit distressing to have to do this as unit tests shouldn't take anything like that long!

Changeset: e65b2f46b2638a5cfd19eff1d6436b4415518ea0

comment:59 Changed 7 years ago by Russell Taylor

Re #8882. Set MAKE_VATES to ON.

Add cmake argument that points to paraview, with the location of paraview being held in an environment variable that needs to be configured on each build slave machine.

Changeset: 3ecf59156a6ee90afd34abf4cf9a0079be013636

comment:60 Changed 7 years ago by Russell Taylor

Re #8882. Speed up a test that was surely doing more than it needed to.

Changeset: 1cf6a3efade277b3262288017318319df0ed655d

comment:61 Changed 7 years ago by Russell Taylor

Re #8882. Unfortunately, it appears that we can't have a timeout.

It turns out that we currently only set a timeout on Linux builds. If we have it globally, some tests time out on both Mac & Windows.

Changeset: 5f580e93e438ca941169798537659b0ce38cf589

comment:62 Changed 7 years ago by Russell Taylor

Re #8882. Run the unit tests in random order.

Otherwise the ctest default is to run the slowest tests first, which tend to be the ones hitting the disk so they all fight for IO at the same time and get even slower. This should mitigate against that.

Changeset: 8fa04ef61b08373531795a18a349ba7bd3fcce83

comment:63 Changed 7 years ago by Russell Taylor

Re #8882. Add the MantidPlot tests.

Changeset: 72f5f57e3b16207343fc5c894a194b3299b251fc

comment:64 Changed 7 years ago by Russell Taylor

Re #8882. Add actions for clean builds.

Clean builds are detected by looking for "clean" in the job name. If found, the build directory is wiped out at the start to make it a completely clean build. In addition, install kits are build for clean builds (& not otherwise).

Changeset: 1c119edaf1c5cee04a0138fca208aa0a6be02364

comment:65 Changed 7 years ago by Russell Taylor

Re #8882. Set the default to no Qt assistant docs on the Mac.

They don't work there at present, so it's much more sensible to set this as the default globally rather than in individual build jobs.

Changeset: 53346f3a97a6e4e6b94f8761c2ff1a2f278d370d

comment:66 Changed 7 years ago by Russell Taylor

Re #8882. Build the Qt Assistant docs if appropriate.

Changeset: 761481bf96532edcdb7de84140b477dbc0f445ff

comment:67 Changed 7 years ago by Russell Taylor

Re #8882. Make sure we're using bash.

Changeset: 0b1f242ccf4b45bbd06b17a9486256bab2b0550b

comment:68 Changed 7 years ago by Russell Taylor

Re #8882. Add a file for any notes about the build scripts.

Changeset: 92d3a14158fe0389309aef061464d0b75572b63f

comment:69 Changed 7 years ago by Russell Taylor

Re #8882. Enable script to be run if called from another directory.

Changeset: b40ae50686c771500dcff7dfe5ee246e7fff33ac

comment:70 Changed 7 years ago by Russell Taylor

Re #8882. Use the NSIS installer by default and always.

The MSI installer is long-dead so we don't need to leave the option hanging around (especially as the default). The -v option is still left in the list of possible flags for backwards compatibility, but it does nothing.

Changeset: 381c53482f2a7b8a217a9ee439524cb160f2b913

comment:71 Changed 7 years ago by Russell Taylor

Re #8882. Generalise the path to the stresstesting module.

So that this script can be run from a different working directory.

Changeset: acb6f598803fd6936c6c873be769d62c2363de2b

comment:72 Changed 7 years ago by Russell Taylor

Re #8882. Forgot the import.

Changeset: 79c8ad1a666e4b30b3b8f9cfea34f304a01f79bc

comment:73 Changed 7 years ago by Russell Taylor

Re #8882. Also forgot a directory separator.

Changeset: e0d41b97ac3633521f902766bea86db7bf875559

comment:74 Changed 7 years ago by Russell Taylor

Re #8882. Set DYLD_LIBRARY_PATH on the Mac.

This enables mantid to be imported into python.

Changeset: b8ff6f344b59b49f912d48e5b57c6154bcea180f

comment:75 Changed 7 years ago by Russell Taylor

Revert "Re #8882. Disable ubiquitous size_t conversion warning on 32 bit."

This reverts commit b80c5fd617542cfb7245076d107f6bbf823df7de. No need for 32 bit specifics now that we no longer support it.

Changeset: be606f04e0b8a38e083a14edfc792e414b64ad7d

comment:76 Changed 7 years ago by Russell Taylor

Re #8882. Remove code to handle 32 bit builds.

No longer needed as we're not supporting 32 bit going forward.

Changeset: 15fbfa41ee6df3add6c93fed246bb4f18f237f97

comment:77 Changed 7 years ago by Russell Taylor

Re #8882. Seems like "scl enable mantidlibs" is needed on make commands on RHEL6.

Changeset: 4dfab33b7c8cdcf81b7d7ca1ec9e8906fa96d8e6

comment:78 Changed 7 years ago by Russell Taylor

Re #8882. Enable building nightly/unstable packages on linux.

Also build the source tarball on a RHEL6 clean build.

Changeset: 7c50017de48fb91ab6b16267c6acdcc31a0b38c8

comment:79 Changed 7 years ago by Russell Taylor

Re #8882. Always build packages on Linux.

This will allow us to have system test jobs that hang off the latest incremental build, which is better than having to wait for clean builds to complete. Building packages on Linux is not the lengthy process it is on Mac & Windows so we can afford to so this.

Changeset: 6b0351e4ecc7de855321d1259d252a8acd560ea4

comment:80 Changed 7 years ago by Russell Taylor

Re #8882. Add setting to fetch images from wiki for clean master build.

This is to put them into the QtAssistant offline docs.

Changeset: e40d79a0d09cd477cd7284eecf85a0ffd1d9cbb9

comment:81 Changed 7 years ago by Russell Taylor

Re #8882. Try and get my batch scripting right.

Changeset: 781e7047256e6bf0d972209f15915d46a62d80ce

comment:82 Changed 7 years ago by Russell Taylor

Re #8882. Fix error - should be == not !=.

Changeset: 5f16d71f85b93f038dd850a63f1d4fd4d123377c

comment:83 Changed 7 years ago by Russell Taylor

Re #8882. Update instructions.

Changeset: 59c778a8fa2bba99865a5d542d15fa1ecc969a2a

comment:84 Changed 7 years ago by Russell Taylor

  • Status changed from inprogress to verify
  • Resolution set to fixed

I reckon this is done now. Obviously it's not fully tested with builds of master, but if anything small comes up we can use separate tickets or perhaps just fix it directly as this is not part of the Mantid code itself.

Tester: Note that there are both mantid & systemtests branches for this (called feature/8882_jenkins_build_scripts). Test by noting these script's use in the develop_clean and develop_incremental builds on "new Jenkins".

comment:85 Changed 6 years ago by Martyn Gigg

  • Status changed from verify to verifying
  • Tester set to Martyn Gigg

comment:86 Changed 6 years ago by Martyn Gigg

  • Status changed from verifying to closed

Merge remote-tracking branch 'origin/feature/8882_jenkins_build_scripts'

Full changeset: 0cebb30c5c09344d4df02f52b8af41415d28f007

comment:87 Changed 6 years ago by Martyn Gigg

Merge remote-tracking branch 'origin/feature/8882_jenkins_build_scripts'

Full changeset: b4e60823ea433074dd14e9928b1aa470f12d59c1

comment:88 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 9726

Note: See TracTickets for help on using tickets.