@@ -115,25 +115,33 @@ on:
115115 python_version :
116116 description : " Default Python version for other jobs."
117117 value : ${{ jobs.Parameters.outputs.python_version }}
118- python_jobs :
119- description : " List of Python versions (and system combinations) to be used in the matrix of other jobs."
120- value : ${{ jobs.Parameters.outputs.python_jobs }}
118+ package_fullname :
119+ description : " The package's full name."
120+ value : ${{ jobs.Parameters.outputs.package_fullname }}
121+ package_directory :
122+ description : " The package's directory."
123+ value : ${{ jobs.Parameters.outputs.package_directory }}
124+ artifact_basename :
125+ description : " Artifact base name."
126+ value : ${{ jobs.Parameters.outputs.artifact_basename }}
121127 artifact_names :
122128 description : " Pre-defined artifact names for other jobs."
123129 value : ${{ jobs.Parameters.outputs.artifact_names }}
124- params :
125- description : " Parameters to be used in other jobs."
126- value : ${{ jobs.Parameters.outputs.params }}
130+ python_jobs :
131+ description : " List of Python versions (and system combinations) to be used in the matrix of other jobs."
132+ value : ${{ jobs.Parameters.outputs.python_jobs }}
127133
128134jobs :
129135 Parameters :
130136 name : ✎ Generate pipeline parameters
131137 runs-on : " ubuntu-${{ inputs.ubuntu_image_version }}"
132138 outputs :
133- python_version : ${{ steps.params.outputs.python_version }}
134- python_jobs : ${{ steps.params.outputs.python_jobs }}
135- artifact_names : ${{ steps.params.outputs.artifact_names }}
136- params : ${{ steps.params.outputs.params }}
139+ python_version : ${{ steps.variables.outputs.python_version }}
140+ package_fullname : ${{ steps.variables.outputs.package_fullname }}
141+ package_directory : ${{ steps.variables.outputs.package_directory }}
142+ artifact_basename : ${{ steps.variables.outputs.artifact_basename }}
143+ artifact_names : ${{ steps.artifacts.outputs.artifact_names }}
144+ python_jobs : ${{ steps.jobs.outputs.python_jobs }}
137145
138146 steps :
139147 - name : Generate a startup delay of ${{ inputs.pipeline-delay }} seconds
@@ -142,32 +150,107 @@ jobs:
142150 run : |
143151 sleep ${{ inputs.pipeline-delay }}
144152
145- - name : Generate 'params' and 'python_jobs '
146- id : params
153+ - name : Generate 'python_version '
154+ id : variables
147155 shell : python
148156 run : |
149- from json import dumps as json_dumps
150157 from os import getenv
151158 from pathlib import Path
152159 from textwrap import dedent
153- from typing import Iterable
154160
161+ python_version = "${{ inputs.python_version }}".strip()
155162 package_namespace = "${{ inputs.package_namespace }}".strip()
156163 package_name = "${{ inputs.package_name }}".strip()
157164 name = "${{ inputs.name }}".strip()
158- python_version = "${{ inputs.python_version }}".strip()
165+
166+ if package_namespace == "" or package_namespace == ".":
167+ package_fullname = f"{package_name}"
168+ package_directory = f"{package_name}"
169+ else:
170+ package_fullname = f"{package_namespace}.{package_name}"
171+ package_directory = f"{package_namespace}/{package_name}"
172+
173+ artifact_basename = package_fullname if name == "" else name
174+
175+ print("Variables:")
176+ print(f" python_version: {python_version}")
177+ print(f" package_fullname: {package_fullname}")
178+ print(f" package_directory: {package_directory}")
179+ print(f" artifact_basename: {artifact_basename}")
180+
181+ # Write jobs to special file
182+ github_output = Path(getenv("GITHUB_OUTPUT"))
183+ print(f"GITHUB_OUTPUT: {github_output}")
184+ with github_output.open("a+", encoding="utf-8") as f:
185+ f.write(dedent(f"""\
186+ python_version={python_version}
187+ package_fullname={package_fullname}
188+ package_directory={package_directory}
189+ artifact_basename={artifact_basename}
190+ """))
191+
192+ - name : Generate 'artifact_names'
193+ id : artifacts
194+ shell : python
195+ run : |
196+ from json import dumps as json_dumps
197+ from os import getenv
198+ from pathlib import Path
199+ from textwrap import dedent
200+
201+ package_namespace = "${{ inputs.package_namespace }}".strip()
202+ package_name = "${{ inputs.package_name }}".strip()
203+ artifact_basename = "${{ steps.variables.outputs.artifact_basename }}"
204+
205+ artifact_names = {
206+ "unittesting_xml": f"{artifact_basename}-UnitTestReportSummary-XML",
207+ "unittesting_html": f"{artifact_basename}-UnitTestReportSummary-HTML",
208+ "perftesting_xml": f"{artifact_basename}-PerformanceTestReportSummary-XML",
209+ "benchtesting_xml": f"{artifact_basename}-BenchmarkTestReportSummary-XML",
210+ "apptesting_xml": f"{artifact_basename}-ApplicationTestReportSummary-XML",
211+ "codecoverage_sqlite": f"{artifact_basename}-CodeCoverage-SQLite",
212+ "codecoverage_xml": f"{artifact_basename}-CodeCoverage-XML",
213+ "codecoverage_json": f"{artifact_basename}-CodeCoverage-JSON",
214+ "codecoverage_html": f"{artifact_basename}-CodeCoverage-HTML",
215+ "statictyping_cobertura": f"{artifact_basename}-StaticTyping-Cobertura-XML",
216+ "statictyping_junit": f"{artifact_basename}-StaticTyping-JUnit-XML",
217+ "statictyping_html": f"{artifact_basename}-StaticTyping-HTML",
218+ "package_all": f"{artifact_basename}-Packages",
219+ "documentation_html": f"{artifact_basename}-Documentation-HTML",
220+ "documentation_latex": f"{artifact_basename}-Documentation-LaTeX",
221+ "documentation_pdf": f"{artifact_basename}-Documentation-PDF",
222+ }
223+
224+ print("Artifacts Names ({len(artifact_names)}):")
225+ for id, artifactName in artifact_names.items():
226+ print(f" {id:>24}: {artifactName}")
227+
228+ # Write jobs to special file
229+ github_output = Path(getenv("GITHUB_OUTPUT"))
230+ print(f"GITHUB_OUTPUT: {github_output}")
231+ with github_output.open("a+", encoding="utf-8") as f:
232+ f.write(dedent(f"""\
233+ artifact_names={json_dumps(artifact_names)}
234+ """))
235+
236+ - name : Generate 'python_jobs'
237+ id : jobs
238+ shell : python
239+ run : |
240+ from json import dumps as json_dumps
241+ from os import getenv
242+ from pathlib import Path
243+ from textwrap import dedent
244+ from typing import Iterable
245+
246+ python_version = "${{ steps.variables.outputs.python_version }}"
247+ name = "${{ steps.artifacts.outputs.artifact_base }}"
159248 systems = "${{ inputs.system_list }}".strip()
160249 versions = "${{ inputs.python_version_list }}".strip()
161250 include_list = "${{ inputs.include_list }}".strip()
162251 exclude_list = "${{ inputs.exclude_list }}".strip()
163252 disable_list = "${{ inputs.disable_list }}".strip()
164253
165- if name == "":
166- if package_namespace == "" or package_namespace == ".":
167- name = f"{package_name}"
168- else:
169- name = f"{package_namespace}.{package_name}"
170-
171254 currentMSYS2Version = "3.12"
172255 currentAlphaVersion = "3.14"
173256 currentAlphaRelease = "3.14.0-rc.2"
@@ -322,31 +405,11 @@ jobs:
322405 for runtime, version in combinations if runtime not in data["sys"]
323406 ]
324407
325- artifact_names = {
326- "unittesting_xml": f"{name}-UnitTestReportSummary-XML",
327- "unittesting_html": f"{name}-UnitTestReportSummary-HTML",
328- "perftesting_xml": f"{name}-PerformanceTestReportSummary-XML",
329- "benchtesting_xml": f"{name}-BenchmarkTestReportSummary-XML",
330- "apptesting_xml": f"{name}-ApplicationTestReportSummary-XML",
331- "codecoverage_sqlite": f"{name}-CodeCoverage-SQLite",
332- "codecoverage_xml": f"{name}-CodeCoverage-XML",
333- "codecoverage_json": f"{name}-CodeCoverage-JSON",
334- "codecoverage_html": f"{name}-CodeCoverage-HTML",
335- "statictyping_html": f"{name}-StaticTyping-HTML",
336- "package_all": f"{name}-Packages",
337- "documentation_html": f"{name}-Documentation-HTML",
338- "documentation_latex": f"{name}-Documentation-LaTeX",
339- "documentation_pdf": f"{name}-Documentation-PDF",
340- }
341-
342408 print("Parameters:")
343409 print(f" python_version: {python_version}")
344410 print(f" python_jobs ({len(jobs)}):\n" +
345411 "".join([f" {{ " + ", ".join([f"\"{key}\": \"{value}\"" for key, value in job.items()]) + f" }},\n" for job in jobs])
346412 )
347- print(f" artifact_names ({len(artifact_names)}):")
348- for id, name in artifact_names.items():
349- print(f" {id:>20}: {name}")
350413
351414 # Write jobs to special file
352415 github_output = Path(getenv("GITHUB_OUTPUT"))
@@ -355,13 +418,17 @@ jobs:
355418 f.write(dedent(f"""\
356419 python_version={python_version}
357420 python_jobs={json_dumps(jobs)}
358- artifact_names={json_dumps(artifact_names)}
359421 """))
360422
361423 - name : Verify out parameters
362424 id : verify
363425 run : |
364- printf "python_version: %s\n" '${{ steps.params.outputs.python_version }}'
365- printf "python_jobs: %s\n" '${{ steps.params.outputs.python_jobs }}'
366- printf "artifact_names: %s\n" '${{ steps.params.outputs.artifact_names }}'
367- printf "params: %s\n" '${{ steps.params.outputs.params }}'
426+ printf "python_version: %s\n" '${{ steps.variables.outputs.python_version }}'
427+ printf "package_fullname: %s\n" '${{ steps.variables.outputs.package_fullname }}'
428+ printf "package_directory: %s\n" '${{ steps.variables.outputs.package_directory }}'
429+ printf "artifact_basename: %s\n" '${{ steps.variables.outputs.artifact_basename }}'
430+ printf "====================\n"
431+ printf "artifact_names: %s\n" '${{ steps.artifacts.outputs.artifact_names }}'
432+ printf "====================\n"
433+ printf "python_jobs: %s\n" '${{ steps.jobs.outputs.python_jobs }}'
434+ printf "====================\n"
0 commit comments