Skip to content

Commit 9a9228c

Browse files
authored
Merge pull request #6015 from readthedocs/expand-vcs-signal-scope
Expand the scope between `before_vcs` and `after_vcs`
2 parents 4b38e82 + ea7eaf4 commit 9a9228c

File tree

1 file changed

+42
-37
lines changed

1 file changed

+42
-37
lines changed

readthedocs/projects/tasks.py

Lines changed: 42 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -130,26 +130,22 @@ def sync_repo(self):
130130
)
131131

132132
# Get the actual code on disk
133-
try:
134-
before_vcs.send(sender=self.version)
135-
msg = 'Checking out version {slug}: {identifier}'.format(
136-
slug=self.version.slug,
137-
identifier=self.version.identifier,
138-
)
139-
log.info(
140-
LOG_TEMPLATE,
141-
{
142-
'project': self.project.slug,
143-
'version': self.version.slug,
144-
'msg': msg,
145-
}
146-
)
147-
version_repo = self.get_vcs_repo()
148-
version_repo.update()
149-
self.sync_versions(version_repo)
150-
version_repo.checkout(self.version.identifier)
151-
finally:
152-
after_vcs.send(sender=self.version)
133+
msg = 'Checking out version {slug}: {identifier}'.format(
134+
slug=self.version.slug,
135+
identifier=self.version.identifier,
136+
)
137+
log.info(
138+
LOG_TEMPLATE,
139+
{
140+
'project': self.project.slug,
141+
'version': self.version.slug,
142+
'msg': msg,
143+
}
144+
)
145+
version_repo = self.get_vcs_repo()
146+
version_repo.update()
147+
self.sync_versions(version_repo)
148+
version_repo.checkout(self.version.identifier)
153149

154150
def sync_versions(self, version_repo):
155151
"""
@@ -240,6 +236,7 @@ def run(self, version_pk): # pylint: disable=arguments-differ
240236
try:
241237
self.version = self.get_version(version_pk)
242238
self.project = self.version.project
239+
before_vcs.send(sender=self.version)
243240
with self.project.repo_nonblockinglock(version=self.version):
244241
self.sync_repo()
245242
return True
@@ -264,6 +261,10 @@ def run(self, version_pk): # pylint: disable=arguments-differ
264261
},
265262
},
266263
)
264+
finally:
265+
after_vcs.send(sender=self.version)
266+
267+
# Always return False for any exceptions
267268
return False
268269

269270

@@ -440,25 +441,29 @@ def run_setup(self, record=True):
440441

441442
# Environment used for code checkout & initial configuration reading
442443
with self.setup_env:
443-
if self.project.skip:
444-
raise ProjectBuildsSkippedError
445-
try:
446-
with self.project.repo_nonblockinglock(version=self.version):
447-
self.setup_vcs()
448-
except vcs_support_utils.LockTimeout as e:
449-
self.task.retry(exc=e, throw=False)
450-
raise VersionLockedError
451444
try:
452-
self.config = load_yaml_config(version=self.version)
453-
except ConfigError as e:
454-
raise YAMLParseError(
455-
YAMLParseError.GENERIC_WITH_PARSE_EXCEPTION.format(
456-
exception=str(e),
457-
),
458-
)
445+
before_vcs.send(sender=self.version)
446+
if self.project.skip:
447+
raise ProjectBuildsSkippedError
448+
try:
449+
with self.project.repo_nonblockinglock(version=self.version):
450+
self.setup_vcs()
451+
except vcs_support_utils.LockTimeout as e:
452+
self.task.retry(exc=e, throw=False)
453+
raise VersionLockedError
454+
try:
455+
self.config = load_yaml_config(version=self.version)
456+
except ConfigError as e:
457+
raise YAMLParseError(
458+
YAMLParseError.GENERIC_WITH_PARSE_EXCEPTION.format(
459+
exception=str(e),
460+
),
461+
)
459462

460-
self.save_build_config()
461-
self.additional_vcs_operations()
463+
self.save_build_config()
464+
self.additional_vcs_operations()
465+
finally:
466+
after_vcs.send(sender=self.version)
462467

463468
if self.setup_env.failure or self.config is None:
464469
msg = 'Failing build because of setup failure: {}'.format(

0 commit comments

Comments
 (0)