| Background This is a side effect of the way P4-Plugin now correctly only builds code that existed when the job was triggered. Imagine the following stream:
Steam: //helix/dev
Paths: share ...
import+ imports/bin/... //builds-server/main/bin/... # A REMOTE DEPOT PATH
import+ doc/html/... //doc/main/html/... # A LOCAL DEPOT PATH
P4-Jenkins runs 'p4 changes' to determine the correct changelist to build and then 'p4 sync' to get the code at that changelist. In the above scenario 'p4 changes -m1 ws' will only return the highest changelist for the local depot paths '//helix/dev/...' and '//doc/main/html/...'. Problem This is fine unless the '//builds-server/main/bin/...' has been updated after the other two paths. In that case we will not sync any newer changes from the remote depot until a local depot change occurs even if you click 'Build Now'. This is because we are running that 'p4 changes' first to figure out what to build. Solution A possible solution would be to run 'p4 changes -m1 //...' against the whole server and then get the date for the highest changelist. Then sync workspace to the server date and time when the job was triggered e.g.
p4 sync //ws/...@2019/08/15:02:07:21
NOTE: I understand this an edge case but it has impacted DS. Talk to me if you need more info. |