Skip to content

Commit 472a56d

Browse files
committed
Expand the scope between before_vcs and after_vcs
This makes it include submodule cloning. This is mainly to include the SSH agent during submodule cloning on the corporate site.
1 parent 4b38e82 commit 472a56d

File tree

1 file changed

+41
-37
lines changed

1 file changed

+41
-37
lines changed

readthedocs/projects/tasks.py

Lines changed: 41 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
"""
@@ -238,6 +234,7 @@ def run(self, version_pk): # pylint: disable=arguments-differ
238234
:rtype: bool
239235
"""
240236
try:
237+
before_vcs.send(sender=self.version)
241238
self.version = self.get_version(version_pk)
242239
self.project = self.version.project
243240
with self.project.repo_nonblockinglock(version=self.version):
@@ -264,6 +261,9 @@ def run(self, version_pk): # pylint: disable=arguments-differ
264261
},
265262
},
266263
)
264+
finally:
265+
after_vcs.send(sender=self.version)
266+
267267
return False
268268

269269

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

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

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

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

0 commit comments

Comments
 (0)