The releases carried the wheel and the sdist; the only zip was GitHub's source archive of the whole repository (tests, CI, tools). A Windows user just wants to extract a folder and double-click start.bat. - scripts/build_release_zip.py builds simtrace-analyser-<version>.zip with a single top-level directory: the two Python packages, the PWA runtime files (frontend/tests and package.json stay out), the four launchers, the udev rule, the READMEs and the screenshot. The .bat entries are written with CRLF line endings (cmd.exe mishandles bare-LF labels/goto), the .sh files keep their executable bit; LICENSE is included automatically once the repo has one. - tests/test_release_zip.py pins the archive shape, the exclusions, the sw.js PRECACHE drift (every precached asset must travel), the CRLF/LF line endings and start.sh's mode. - the release workflow builds the zip, checks it carries start.bat and the PWA, uploads it with the run and attaches it to the release. - READMEs (EN/RU) and the release-notes template offer the zip as the Windows-friendly option; version 2.7.12, PWA cache v94. Verified: the built zip (34 entries, 658 KB compressed) extracted and started on Linux serves the same index.html; 553 Python + 80 Node tests.
This commit is contained in:
1 parent
b19abbd514
commit
e00a96b918
11 files changed
+280
-10
No files matched your search
@@ -12,3 +12,9 @@ virtual environment first (`python3 -m venv .venv && . .venv/bin/activate`).
|
||||
The source archive is the same tree a clone would have: unzip it and run
|
||||
`./start.sh` (Linux/macOS) or `start.bat` (Windows). Direct SIMtrace2 capture
|
||||
on Linux additionally needs the attached `70-simtrace2-pysniff.rules` udev rule.
|
||||
|
||||
**Runtime zip (Windows-friendly, no installer)** — `simtrace-analyser-*.zip`
|
||||
is the runtime tree only (packages, PWA, launchers, docs — no tests, no git):
|
||||
extract it anywhere and run `start.bat` (Windows) or `./start.sh`
|
||||
(Linux/macOS). Python 3 has to be on `PATH`; `pip install pyusb` is only
|
||||
needed for direct SIMtrace2 capture.
|
||||
@@ -49,6 +49,22 @@ jobs:
|
||||
- name: Build the sdist and the wheel
|
||||
run: python -m build --sdist --wheel
|
||||
|
||||
- name: Build the runtime zip
|
||||
run: python scripts/build_release_zip.py --output dist
|
||||
|
||||
- name: The runtime zip is complete
|
||||
run: |
|
||||
python - <<'PY'
|
||||
import glob
|
||||
import zipfile
|
||||
archive = glob.glob('dist/*.zip')[0]
|
||||
names = zipfile.ZipFile(archive).namelist()
|
||||
for required in ('start.bat', 'frontend/index.html'):
|
||||
assert any(n.endswith('/' + required) for n in names), \
|
||||
'%s is missing from %s' % (required, archive)
|
||||
print('%s: %d entries, launchers and PWA bundled' % (archive, len(names)))
|
||||
PY
|
||||
|
||||
- name: The wheel bundles the PWA
|
||||
run: |
|
||||
python - <<'PY'
|
||||
@@ -96,4 +112,4 @@ jobs:
|
||||
--title "$GITHUB_REF_NAME" \
|
||||
--generate-notes \
|
||||
--notes-file .github/release-notes.md \
|
||||
dist/*.whl dist/*.tar.gz 70-simtrace2-pysniff.rules
|
||||
dist/*.whl dist/*.tar.gz dist/*.zip 70-simtrace2-pysniff.rules
|
||||
Reference in new issue
Block a user