[SERVER-77605] Add evergreen param for specifying a patch build to pull builds from Created: 30/May/23  Updated: 15/Dec/23  Resolved: 23/Jun/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 7.1.0-rc0

Type: New Feature Priority: Major - P3
Reporter: Trevor Guidry Assignee: Trevor Guidry
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Related
related to SERVER-84232 Make reuse_compile_from an alias of b... Closed
is related to SERVER-70710 Reimplement compile bypass Closed
Backwards Compatibility: Fully Compatible
Participants:

 Description   

I run a lot of similar patch builds where I change nothing related to the build and only change test code. I think it would be nice to be able to specify a previous patch build to take binaries/artifacts from to make compile_dist_test/archive_dist_test almost instant.



 Comments   
Comment by Githook User [ 09/Aug/23 ]

Author:

{'name': 'Simon Eismann', 'email': 'simon.eismann@mongodb.com', 'username': 'SimonEismann'}

Message: SERVER-79305 Build a skip compile param similar to SERVER-77605
Branch: master
https://github.com/mongodb/mongo/commit/c07d9a47cc7003830b6c2ad07854fc1aa163f26a

Comment by Githook User [ 23/Jun/23 ]

Author:

{'name': 'Trevor Guidry', 'email': 'trevor.guidry@mongodb.com', 'username': ''}

Message: SERVER-77605 add build patch id evergreen param
Branch: master
https://github.com/mongodb/mongo/commit/ca734252996626b40ebbd4e4237eb86a880c1e58

Comment by Alex Neben [ 31/May/23 ]

ok that makes sense

Comment by Trevor Guidry [ 31/May/23 ]

The idea in my head goes something like this:

  1. have some `buildPathId` evergreen param
  2. If `buildPathId` param is present, skip compile_dist_test
  3. in archive_dist_test there is some function that runs before the scons compile that tries to lookup the binaries that were previously uploaded. I am hoping I can do something with the evergreen api here but it might not be possible. If the api does not have the support for this I should just be able to build the download URL and download it. I will try and download it to the same location on disk that gets uploaded later so that the tasks that depend on `archive_dist_test` will see no difference.
  4. Repeat for archive_dist_test_debug to get the debug symbols of the original patch
  5. ^ compile_dist_test, archive_dist_test, and archive_dist_test_debug are the important ones but we can try insta returning for a few other of the compile tasks, or just let them run as normal like
  • compile_unittests
  • run_unittests
  • compile_dbtest
  • run_dbtest
  • archive_dbtest
  • compile_upload_benchmarks
  • compile_all
  • package

 

tl;dr we reupload the binaries during archive_dist_test so the tasks just run fetch_binaries like normal

Comment by Alex Neben [ 30/May/23 ]

I think this might be slightly harder to implement than we thought. How are yopu going to do fetch_binaries?

Generated at Thu Feb 08 06:36:04 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.