@@ -3,85 +3,6 @@ using YAML: YAML
3
3
using Logging
4
4
using IntegrationTests
5
5
6
- """
7
- Contains all git-related information about a package.
8
-
9
- # Fields
10
- - `url`: Git url of the original project.
11
- - `modified_url`: Stores the Git url set by the environment variable.
12
- - `env_var`: Name of the environment variable to set the modified_url.
13
- """
14
- mutable struct PackageInfo
15
- url:: String
16
- modified_url:: String
17
- env_var:: String
18
- PackageInfo (url, env_var) = new (url, " " , env_var)
19
- end
20
-
21
- """
22
- extract_env_vars_from_git_message!(package_infos::AbstractDict{String, PackageInfo}, var_name = "CI_COMMIT_MESSAGE")
23
-
24
- Parse the commit message, if set via variable (usual `CI_COMMIT_MESSAGE`), and set custom URLs.
25
- """
26
- function extract_env_vars_from_git_message! (
27
- package_infos:: AbstractDict{String,PackageInfo} , var_name= " CI_COMMIT_MESSAGE"
28
- )
29
- if haskey (ENV , var_name)
30
- for line in split (ENV [var_name], " \n " )
31
- line = strip (line)
32
- for pkg_info in values (package_infos)
33
- if startswith (line, pkg_info. env_var * " : " )
34
- ENV [pkg_info. env_var] = SubString (
35
- line, length (pkg_info. env_var * " : " ) + 1
36
- )
37
- end
38
- end
39
- end
40
- end
41
- end
42
-
43
- """
44
- modify_package_url!(package_infos::AbstractDict{String, PackageInfo})
45
-
46
- Iterate over all entries of package_info. If an environment variable exists with the same name as,
47
- the `env_var` entry, set the value of the environment variable to `modified_url`.
48
- """
49
- function modify_package_url! (package_infos:: AbstractDict{String,PackageInfo} )
50
- for package_info in values (package_infos)
51
- if haskey (ENV , package_info. env_var)
52
- package_info. modified_url = ENV [package_info. env_var]
53
- end
54
- end
55
- end
56
-
57
- """
58
- modified_package_name(package_infos::AbstractDict{String, PackageInfo})
59
-
60
- Read the name of the modified (project) package from the environment variable `CI_DEV_PKG_NAME`.
61
-
62
- # Returns
63
- - The name of the modified (project) package
64
- """
65
- function modified_package_name (package_infos:: AbstractDict{String,PackageInfo} )
66
- for env_var in [" CI_DEV_PKG_NAME" , " CI_PROJECT_DIR" ]
67
- if ! haskey (ENV , env_var)
68
- error (" Environment variable $env_var is not set." )
69
- end
70
- end
71
-
72
- if ! haskey (package_infos, ENV [" CI_DEV_PKG_NAME" ])
73
- package_name = ENV [" CI_DEV_PKG_NAME" ]
74
- error (" Error unknown package name $package_name }" )
75
- else
76
- return ENV [" CI_DEV_PKG_NAME" ]
77
- end
78
- end
79
-
80
- function clean_pkg_name (pkg_name:: AbstractString )
81
- # remove color tags (?) from the package names
82
- return replace (pkg_name, r" \{ [^}]*\} " => " " )
83
- end
84
-
85
6
"""
86
7
generate_job_yaml!(
87
8
package_name::String,
@@ -114,17 +35,15 @@ function generate_job_yaml!(
114
35
test_package:: TestPackage ,
115
36
target_branch:: AbstractString ,
116
37
job_yaml:: Dict ,
117
- package_infos :: AbstractDict {String,PackageInfo } ,
38
+ custom_urls :: Dict {String,String } ,
118
39
tools_git_repo:: ToolsGitRepo ,
119
40
stage:: AbstractString = " " ,
120
41
can_fail:: Bool = false ,
121
42
)
122
- package_info = package_infos[package_name]
123
- # if modified_url is empty, use original url
124
- if package_info. modified_url == " "
125
- url = package_info. url
43
+ if haskey (custom_urls, package_name)
44
+ url = custom_urls[package_name]
126
45
else
127
- url = package_info . modified_url
46
+ url = " https://github.com/QEDjl-project/ $(package_name) .jl.git "
128
47
end
129
48
130
49
script = [" apt update" , " apt install -y git" , " cd /" ]
@@ -201,38 +120,6 @@ function generate_dummy_job_yaml!(job_yaml::Dict)
201
120
)
202
121
end
203
122
204
- """
205
- get_package_info()::Dict{String,PackageInfo}
206
-
207
- Returns a list with QED project package information.
208
- """
209
- function get_package_info ():: Dict{String,PackageInfo}
210
- return Dict (
211
- " QuantumElectrodynamics" => PackageInfo (
212
- " https://github.com/QEDjl-project/QuantumElectrodynamics.jl.git" ,
213
- " CI_INTG_PKG_URL_QED" ,
214
- ),
215
- " QEDfields" => PackageInfo (
216
- " https://github.com/QEDjl-project/QEDfields.jl.git" ,
217
- " CI_INTG_PKG_URL_QEDfields" ,
218
- ),
219
- " QEDbase" => PackageInfo (
220
- " https://github.com/QEDjl-project/QEDbase.jl.git" , " CI_INTG_PKG_URL_QEDbase"
221
- ),
222
- " QEDevents" => PackageInfo (
223
- " https://github.com/QEDjl-project/QEDevents.jl.git" ,
224
- " CI_INTG_PKG_URL_QEDevents" ,
225
- ),
226
- " QEDprocesses" => PackageInfo (
227
- " https://github.com/QEDjl-project/QEDprocesses.jl.git" ,
228
- " CI_INTG_PKG_URL_QEDprocesses" ,
229
- ),
230
- " QEDcore" => PackageInfo (
231
- " https://github.com/QEDjl-project/QEDcore.jl.git" , " CI_INTG_PKG_URL_QEDcore"
232
- ),
233
- )
234
- end
235
-
236
123
"""
237
124
add_integration_test_job_yaml!(
238
125
job_dict::Dict,
@@ -255,28 +142,21 @@ function add_integration_test_job_yaml!(
255
142
job_dict:: Dict ,
256
143
test_package:: TestPackage ,
257
144
target_branch:: AbstractString ,
145
+ custom_urls:: Dict{String,String} ,
258
146
tools_git_repo:: ToolsGitRepo ,
259
147
)
260
148
_add_stage_once! (job_dict, " integ-test" )
261
149
262
- package_infos = get_package_info ()
263
- if target_branch != " main"
264
- extract_env_vars_from_git_message! (package_infos)
150
+ if target_branch == " main"
151
+ empty! (custom_urls)
265
152
end
266
- modify_package_url! (package_infos)
267
153
268
- custom_urls = Dict {String,String} ()
269
- for (name, info) in package_infos
270
- if info. modified_url != " "
271
- custom_urls[name] = info. modified_url
272
- end
273
- end
274
154
qed_path = mktempdir (; cleanup= false )
275
155
compat_changes = Dict {String,String} ()
276
156
277
157
pkg_tree = build_qed_dependency_graph! (qed_path, compat_changes, custom_urls)
278
158
depending_pkg = IntegrationTests. depending_projects (
279
- test_package. name, collect ( keys (package_infos)) , pkg_tree
159
+ test_package. name, r" ^QED*|^QuantumElectrodynamics$ " , pkg_tree
280
160
)
281
161
282
162
if isempty (depending_pkg)
@@ -299,20 +179,14 @@ function add_integration_test_job_yaml!(
299
179
# because of their current compat entries.
300
180
if target_branch == " main" && is_pull_request ()
301
181
generate_job_yaml! (
302
- p,
303
- test_package,
304
- " dev" ,
305
- job_dict,
306
- package_infos,
307
- tools_git_repo,
308
- " integ-test" ,
182
+ p, test_package, " dev" , job_dict, custom_urls, tools_git_repo, " integ-test"
309
183
)
310
184
generate_job_yaml! (
311
185
p,
312
186
test_package,
313
187
" main" ,
314
188
job_dict,
315
- package_infos ,
189
+ custom_urls ,
316
190
tools_git_repo,
317
191
" integ-test" ,
318
192
true ,
@@ -326,7 +200,7 @@ function add_integration_test_job_yaml!(
326
200
# simplify the interface
327
201
" dev" ,
328
202
job_dict,
329
- package_infos ,
203
+ custom_urls ,
330
204
tools_git_repo,
331
205
" integ-test" ,
332
206
)
0 commit comments