Commit Graph

8 Commits

Author SHA1 Message Date
Simone 1fbe2c87cc perf(ci): 8 vCPU for ns7zip build VM (4 was starving parallel build)
Lint / pssa (push) Failing after 30s
Lint / python (push) Successful in 1m1s
Build ns7zip (Local CI) / build (windows) (push) Successful in 1m26s
Build ns7zip (Local CI) / build (linux) (push) Successful in 4m8s
Build ns7zip (Local CI) / release (push) Failing after 0s
WSL on the host builds the 3 configs in parallel in ~103s (= one
config) — the parallel design is correct. The 4-vCPU CI VM ran 3x
make -j on 4 cores -> oversubscription thrash -> ~3x slower. Not
structural / not RAM. Bump guest-cpu to 8 (job.py patches the clone
VMX numvcpus); host is 10c/20t, this matrix is 2 VMs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 22:12:03 +02:00
Simone 7b4051412b feat(ci): expose guest-cpu/guest-memory-mb; ns7zip Linux 8GB
job.py already patches the clone VMX (numvcpus/memsize) via
--guest-cpu/--guest-memory-mb; expose them as action inputs
(default '0' = keep template). build-ns7zip.yml sets
guest-memory-mb: 8192 — the parallel MinGW cross-compile thrashes at
the 4 GB Linux template default (Windows template is 6 GB).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 21:42:47 +02:00
Simone 3d3b00c71b fix(ci): harden release job condition (avoid stuck 'blocked')
A bare `if: github.ref_type == 'tag'` on a needs-dependent job can
leave `release` stuck in "blocked" instead of skipped for
workflow_dispatch runs on Gitea. Use the explicit
${{ github.event_name == 'push' && github.ref_type == 'tag' }} form.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 21:08:49 +02:00
Simone 4f22d11a84 feat(build): live-stream Linux build output; ns7zip via in-guest clone
Lint / pssa (push) Failing after 26s
Lint / python (push) Successful in 52s
- SshTransport.run_streaming: incremental channel recv, forwards
  stdout/stderr live (no more one-block-at-end). _linux_build uses it
  with PYTHONUNBUFFERED so the guest python flushes promptly.
- _tail_lines split out for failure messages (no double print).
- Windows live streaming deferred (TODO 8.2) — pypsrp execute_ps
  returns only at completion.
- build-ns7zip.yml: use-git-clone:'true' (in-guest), repo-url ->
  https://gitea.emulab.it/... (guest-reachable; host SSH alias was
  host-only). Requires GiteaPAT in the LocalSystem keyring or a public
  nsis-plugin-ns7zip.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 20:51:48 +02:00
Simone 29c4ef09bc ci: ns7zip build uses --dist; collect dist/
ns7zip now supports --dist (commit 57133b7 on nsis-plugin-ns7zip):
DLLs land in <repo>/dist/<config>. Build with `python build_plugin.py
--dist` and collect artifact-source 'dist'.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 20:33:56 +02:00
Simone eec3f42fe0 ci: single build-command for ns7zip (Linux has python)
Linux template provides `python`, so the OS-aware split is
unnecessary. Use `python build_plugin.py` for both matrix legs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 20:28:39 +02:00
Simone b2cfe85f88 fix(ci): correct ns7zip build-command and artifact-source
build_plugin.py is a dispatcher: it auto-detects host/toolset and
forwards extra args to the per-version script, which rejected
--final/--dist-dir. Both the Windows (legacy 2601_vs2026) and Linux
build scripts copy nsis7z.dll into <repo>/plugins/{x86-ansi,
x86-unicode,amd64-unicode}, not dist.

- build-command: just `python build_plugin.py` (python3 on Linux —
  Ubuntu 24.04 has no `python`).
- artifact-source: 'plugins' (fixes the "dist missing" failure too).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 20:27:14 +02:00
Simone 97ec820ebb ci: rename build-nsInnoUnp.yml -> build-ns7zip.yml; update doc refs
Workflow now targets Simone/nsis-plugin-ns7zip. Renamed the file and
the workflow `name:`, and updated all references in active docs
(plans/archived and docs/archived left as frozen history).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 20:12:25 +02:00