@@ -133,28 +133,27 @@ def sync_repo(self):
133
133
),
134
134
)
135
135
136
- with self .project .repo_nonblockinglock (version = self .version ):
137
- # Get the actual code on disk
138
- try :
139
- before_vcs .send (sender = self .version )
140
- msg = 'Checking out version {slug}: {identifier}' .format (
141
- slug = self .version .slug ,
142
- identifier = self .version .identifier ,
143
- )
144
- log .info (
145
- LOG_TEMPLATE ,
146
- {
147
- 'project' : self .project .slug ,
148
- 'version' : self .version .slug ,
149
- 'msg' : msg ,
150
- }
151
- )
152
- version_repo = self .get_vcs_repo ()
153
- version_repo .update ()
154
- self .sync_versions (version_repo )
155
- version_repo .checkout (self .version .identifier )
156
- finally :
157
- after_vcs .send (sender = self .version )
136
+ # Get the actual code on disk
137
+ try :
138
+ before_vcs .send (sender = self .version )
139
+ msg = 'Checking out version {slug}: {identifier}' .format (
140
+ slug = self .version .slug ,
141
+ identifier = self .version .identifier ,
142
+ )
143
+ log .info (
144
+ LOG_TEMPLATE ,
145
+ {
146
+ 'project' : self .project .slug ,
147
+ 'version' : self .version .slug ,
148
+ 'msg' : msg ,
149
+ }
150
+ )
151
+ version_repo = self .get_vcs_repo ()
152
+ version_repo .update ()
153
+ self .sync_versions (version_repo )
154
+ version_repo .checkout (self .version .identifier )
155
+ finally :
156
+ after_vcs .send (sender = self .version )
158
157
159
158
def sync_versions (self , version_repo ):
160
159
"""
@@ -242,7 +241,8 @@ def run(self, version_pk): # pylint: disable=arguments-differ
242
241
try :
243
242
self .version = self .get_version (version_pk = version_pk )
244
243
self .project = self .version .project
245
- self .sync_repo ()
244
+ with self .project .repo_nonblockinglock (version = self .version ):
245
+ self .sync_repo ()
246
246
return True
247
247
except RepositoryError :
248
248
# Do not log as ERROR handled exceptions
@@ -442,7 +442,8 @@ def run_setup(self, record=True):
442
442
if self .project .skip :
443
443
raise ProjectBuildsSkippedError
444
444
try :
445
- self .setup_vcs ()
445
+ with self .project .repo_nonblockinglock (version = self .version ):
446
+ self .setup_vcs ()
446
447
except vcs_support_utils .LockTimeout as e :
447
448
self .task .retry (exc = e , throw = False )
448
449
raise VersionLockedError
@@ -628,14 +629,6 @@ def setup_vcs(self):
628
629
log .warning ('There was an error with the repository' , exc_info = True )
629
630
# Re raise the exception to stop the build at this point
630
631
raise
631
- except vcs_support_utils .LockTimeout :
632
- log .info (
633
- 'Lock still active: project=%s version=%s' ,
634
- self .project .slug ,
635
- self .version .slug ,
636
- )
637
- # Raise the proper exception (won't be sent to Sentry)
638
- raise VersionLockedError
639
632
except Exception :
640
633
# Catch unhandled errors when syncing
641
634
log .exception (
0 commit comments