Skip to content

Commit 5422e9c

Browse files
committed
more publish checking
1 parent 45ec396 commit 5422e9c

1 file changed

Lines changed: 24 additions & 8 deletions

File tree

‎template/.github/workflows/publish.yaml.jinja‎

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,20 @@ jobs:
196196
PYTHONPATH: "" # avoid picking up local sources
197197
run: |
198198
python - <<'PY'
199-
import sys, importlib, pathlib
199+
import sys, importlib, importlib.util, importlib.metadata as md, pathlib
200200
print(f"Python version {sys.version}")
201-
m = importlib.import_module("{% endraw %}{{ package_name | replace('-', '_') }}{% raw %}")
202-
p = pathlib.Path(getattr(m, "__file__", ""))
201+
mod_name = "{% endraw %}{{ package_name | replace('-', '_') }}{% raw %}"
202+
dist_name = mod_name
203+
m = importlib.import_module(mod_name)
204+
spec = importlib.util.find_spec(mod_name)
205+
origin = (getattr(spec, "origin", None) or getattr(m, "__file__", "")) or ""
206+
p = pathlib.Path(origin)
203207
print(f"Imported from: {p}")
204-
assert "site-packages" in str(p), f"Expected site-packages, got {p}"
208+
assert any(s in str(p) for s in ("site-packages", "dist-packages")), f"Expected site/dist-packages, got {p}"
209+
expected = "${{ needs.get-values.outputs.package-version }}"
210+
installed = md.version(dist_name)
211+
print(f"Installed distribution version: {installed} (expected {expected})")
212+
assert installed == expected, f"Version mismatch: expected {expected}, got {installed}"
205213
PY
206214

207215
create-tag:
@@ -301,10 +309,18 @@ jobs:
301309
PYTHONPATH: "" # avoid picking up local sources
302310
run: |
303311
python - <<'PY'
304-
import sys, importlib, pathlib
312+
import sys, importlib, importlib.util, importlib.metadata as md, pathlib
305313
print(f"Python version {sys.version}")
306-
m = importlib.import_module("{% endraw %}{{ package_name | replace('-', '_') }}{% raw %}")
307-
p = pathlib.Path(getattr(m, "__file__", ""))
314+
mod_name = "{% endraw %}{{ package_name | replace('-', '_') }}{% raw %}"
315+
dist_name = mod_name
316+
m = importlib.import_module(mod_name)
317+
spec = importlib.util.find_spec(mod_name)
318+
origin = (getattr(spec, "origin", None) or getattr(m, "__file__", "")) or ""
319+
p = pathlib.Path(origin)
308320
print(f"Imported from: {p}")
309-
assert "site-packages" in str(p), f"Expected site-packages, got {p}"
321+
assert any(s in str(p) for s in ("site-packages", "dist-packages")), f"Expected site/dist-packages, got {p}"
322+
expected = "${{ needs.get-values.outputs.package-version }}"
323+
installed = md.version(dist_name)
324+
print(f"Installed distribution version: {installed} (expected {expected})")
325+
assert installed == expected, f"Version mismatch: expected {expected}, got {installed}"
310326
PY{% endraw %}

0 commit comments

Comments
 (0)