From 0309a6cae2b630d1faf8deebf6e74da53d413d0a Mon Sep 17 00:00:00 2001 From: JeffreyChen Date: Thu, 23 Jul 2026 13:35:39 +0800 Subject: [PATCH] Give the release smoke test a display and the installed wheel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit First real run of the tag-triggered release path failed: the X11 backend opens a display at import time and the runner has none, so `import je_auto_control.api` raised DisplayConnectionError. The step was also importing the repo checkout rather than the wheel it had just installed — the repo root shadows site-packages on sys.path — so it never actually smoke-tested the artifact it was about to publish. --- .github/workflows/release.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dfd2b115..43d182c6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,9 +35,17 @@ jobs: - run: python -m twine check dist/* - name: Smoke-test the built wheel run: | + # The X11 backend opens a display at import time, so the runner + # needs a virtual one. Import from outside the checkout as well: + # the repo root shadows site-packages on sys.path, so running this + # here would test the source tree instead of the built wheel. + sudo apt-get update && sudo apt-get install -y xvfb python -m venv /tmp/wheel-test /tmp/wheel-test/bin/pip install dist/*.whl - /tmp/wheel-test/bin/python -c "import je_auto_control.api" + cd /tmp && xvfb-run -a /tmp/wheel-test/bin/python -c " + import je_auto_control, je_auto_control.api + print('imported', je_auto_control.__file__) + " - uses: actions/attest-build-provenance@v2 with: subject-path: "dist/*"