@@ -124,28 +124,27 @@ def sync_repo(self):
124
124
),
125
125
)
126
126
127
- with self .project .repo_nonblockinglock (version = self .version ):
128
- # Get the actual code on disk
129
- try :
130
- before_vcs .send (sender = self .version )
131
- msg = 'Checking out version {slug}: {identifier}' .format (
132
- slug = self .version .slug ,
133
- identifier = self .version .identifier ,
134
- )
135
- log .info (
136
- LOG_TEMPLATE ,
137
- {
138
- 'project' : self .project .slug ,
139
- 'version' : self .version .slug ,
140
- 'msg' : msg ,
141
- }
142
- )
143
- version_repo = self .get_vcs_repo ()
144
- version_repo .update ()
145
- self .sync_versions (version_repo )
146
- version_repo .checkout (self .version .identifier )
147
- finally :
148
- after_vcs .send (sender = self .version )
127
+ # Get the actual code on disk
128
+ try :
129
+ before_vcs .send (sender = self .version )
130
+ msg = 'Checking out version {slug}: {identifier}' .format (
131
+ slug = self .version .slug ,
132
+ identifier = self .version .identifier ,
133
+ )
134
+ log .info (
135
+ LOG_TEMPLATE ,
136
+ {
137
+ 'project' : self .project .slug ,
138
+ 'version' : self .version .slug ,
139
+ 'msg' : msg ,
140
+ }
141
+ )
142
+ version_repo = self .get_vcs_repo ()
143
+ version_repo .update ()
144
+ self .sync_versions (version_repo )
145
+ version_repo .checkout (self .version .identifier )
146
+ finally :
147
+ after_vcs .send (sender = self .version )
149
148
150
149
def sync_versions (self , version_repo ):
151
150
"""
@@ -233,7 +232,8 @@ def run(self, version_pk): # pylint: disable=arguments-differ
233
232
try :
234
233
self .version = self .get_version (version_pk )
235
234
self .project = self .version .project
236
- self .sync_repo ()
235
+ with self .project .repo_nonblockinglock (version = self .version ):
236
+ self .sync_repo ()
237
237
return True
238
238
except RepositoryError :
239
239
# Do not log as ERROR handled exceptions
@@ -432,7 +432,8 @@ def run_setup(self, record=True):
432
432
if self .project .skip :
433
433
raise ProjectBuildsSkippedError
434
434
try :
435
- self .setup_vcs ()
435
+ with self .project .repo_nonblockinglock (version = self .version ):
436
+ self .setup_vcs ()
436
437
except vcs_support_utils .LockTimeout as e :
437
438
self .task .retry (exc = e , throw = False )
438
439
raise VersionLockedError
@@ -618,14 +619,6 @@ def setup_vcs(self):
618
619
log .warning ('There was an error with the repository' , exc_info = True )
619
620
# Re raise the exception to stop the build at this point
620
621
raise
621
- except vcs_support_utils .LockTimeout :
622
- log .info (
623
- 'Lock still active: project=%s version=%s' ,
624
- self .project .slug ,
625
- self .version .slug ,
626
- )
627
- # Raise the proper exception (won't be sent to Sentry)
628
- raise VersionLockedError
629
622
except Exception :
630
623
# Catch unhandled errors when syncing
631
624
log .exception (
0 commit comments