@@ -97,6 +97,15 @@ def setup_vcs(self):
97
97
if commit :
98
98
self .data .build ["commit" ] = commit
99
99
100
+ def create_build_environment (self ):
101
+ self .build_environment = self .data .environment_class (
102
+ project = self .data .project ,
103
+ version = self .data .version ,
104
+ config = self .data .config ,
105
+ build = self .data .build ,
106
+ environment = self .get_build_env_vars (),
107
+ )
108
+
100
109
def setup_environment (self ):
101
110
"""
102
111
Create the environment and install required dependencies.
@@ -105,59 +114,50 @@ def setup_environment(self):
105
114
2. create language (e.g. Python) environment
106
115
3. install dependencies into the environment
107
116
"""
108
- self .build_environment = self .data .environment_class (
109
- project = self .data .project ,
117
+ # Environment used for building code, usually with Docker
118
+ language_environment_cls = Virtualenv
119
+ if any (
120
+ [
121
+ self .data .config .conda is not None ,
122
+ self .data .config .python_interpreter in ("conda" , "mamba" ),
123
+ ]
124
+ ):
125
+ language_environment_cls = Conda
126
+
127
+ self .language_environment = language_environment_cls (
110
128
version = self .data .version ,
129
+ build_env = self .build_environment ,
111
130
config = self .data .config ,
112
- build = self .data .build ,
113
- environment = self .get_build_env_vars (),
114
131
)
115
132
116
- # Environment used for building code, usually with Docker
117
- with self .build_environment :
118
- language_environment_cls = Virtualenv
119
- if any (
120
- [
121
- self .data .config .conda is not None ,
122
- self .data .config .python_interpreter in ("conda" , "mamba" ),
123
- ]
124
- ):
125
- language_environment_cls = Conda
126
-
127
- self .language_environment = language_environment_cls (
128
- version = self .data .version ,
129
- build_env = self .build_environment ,
130
- config = self .data .config ,
131
- )
132
-
133
- # TODO: check if `before_build` and `after_build` are still useful
134
- # (maybe in commercial?)
135
- #
136
- # I didn't find they are used anywhere, we should probably remove them
137
- before_build .send (
138
- sender = self .data .version ,
139
- environment = self .build_environment ,
140
- )
133
+ # TODO: check if `before_build` and `after_build` are still useful
134
+ # (maybe in commercial?)
135
+ #
136
+ # I didn't find they are used anywhere, we should probably remove them
137
+ before_build .send (
138
+ sender = self .data .version ,
139
+ environment = self .build_environment ,
140
+ )
141
141
142
- self .pre_system_dependencies ()
143
- self .system_dependencies ()
144
- self .post_system_dependencies ()
142
+ self .pre_system_dependencies ()
143
+ self .system_dependencies ()
144
+ self .post_system_dependencies ()
145
145
146
- # Install all ``build.tools`` specified by the user
147
- if self .data .config .using_build_tools :
148
- self .language_environment .install_build_tools ()
146
+ # Install all ``build.tools`` specified by the user
147
+ if self .data .config .using_build_tools :
148
+ self .language_environment .install_build_tools ()
149
149
150
- self .pre_create_environment ()
151
- self .create_environment ()
152
- self .post_create_environment ()
150
+ self .pre_create_environment ()
151
+ self .create_environment ()
152
+ self .post_create_environment ()
153
153
154
- self .pre_install ()
155
- self .install ()
156
- self .post_install ()
154
+ self .pre_install ()
155
+ self .install ()
156
+ self .post_install ()
157
157
158
- # TODO: remove this and document how to do it on `build.jobs.post_install`
159
- if self .data .project .has_feature (Feature .LIST_PACKAGES_INSTALLED_ENV ):
160
- self .language_environment .list_packages_installed ()
158
+ # TODO: remove this and document how to do it on `build.jobs.post_install`
159
+ if self .data .project .has_feature (Feature .LIST_PACKAGES_INSTALLED_ENV ):
160
+ self .language_environment .list_packages_installed ()
161
161
162
162
def build (self ):
163
163
"""
@@ -168,17 +168,16 @@ def build(self):
168
168
3. build PDF
169
169
4. build ePub
170
170
"""
171
- with self .build_environment :
172
- self .data .outcomes = defaultdict (lambda : False )
173
- self .data .outcomes ["html" ] = self .build_html ()
174
- self .data .outcomes ["search" ] = self .is_type_sphinx ()
175
- self .data .outcomes ["localmedia" ] = self .build_htmlzip ()
176
- self .data .outcomes ["pdf" ] = self .build_pdf ()
177
- self .data .outcomes ["epub" ] = self .build_epub ()
178
-
179
- after_build .send (
180
- sender = self .data .version ,
181
- )
171
+ self .data .outcomes = defaultdict (lambda : False )
172
+ self .data .outcomes ["html" ] = self .build_html ()
173
+ self .data .outcomes ["search" ] = self .is_type_sphinx ()
174
+ self .data .outcomes ["localmedia" ] = self .build_htmlzip ()
175
+ self .data .outcomes ["pdf" ] = self .build_pdf ()
176
+ self .data .outcomes ["epub" ] = self .build_epub ()
177
+
178
+ after_build .send (
179
+ sender = self .data .version ,
180
+ )
182
181
183
182
# VCS checkout
184
183
def pre_checkout (self ):
0 commit comments