checks / unit (pull_request) Successful in 2m39s
Before this commit `admin/goodwe-addon` had no `.gitea/workflows/` directory at all. Eight runnable test files - `test_loop.py` alone drives the real `run_control()` for 93 s of wall clock - and not one of them had ever been run by a machine. Every merge here was a human reading a diff, and the product owner's requirement that a green CI gate a merge could not be met on a repository with no CI to be green. One job, `unit`, with no `paths:` filter, so it reports on every PR and can therefore be a REQUIRED status check: Gitea leaves a required context it never receives pending forever, which is the failure mode on the other side of this ticket. Concurrency is scoped per PR from the start rather than to a bare group name - the bare name is what let the infra repo's run 521 be superseded while still pending, so its four jobs concluded `cancelled` with `started_at` at the Unix epoch and its PR merged on no evidence at all. The tests run in `.gitea/ci/Dockerfile`: `alpine:3` plus `py3-aiohttp` and `py3-paho-mqtt` from apk, matching goodwe_controller/Dockerfile exactly, because pip would install glibc wheels of a library the shipped image gets from Alpine. The runner itself cannot host them - bare python3, no aiohttp, no pip - and mutating a shared long-lived runner with `apk add` is invisible to anyone reading this repo. Two things measured while building it and recorded in the file rather than learned again: the checkout must sit two levels below the mount root or test_freeze.py's `find_hwsim()` dies on `IndexError: 1` before its first assertion, and test_freeze's hwsim section is silently absent here because admin/goodwe is private - so its PASS is a weaker claim than it looks, and the file says so. Verified green on release/1.0 content before this workflow was written: 8 of 8 files pass, ~4 minutes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015VXjA3LWccN1rJsk3okyPC
19 lines
860 B
Plaintext
19 lines
860 B
Plaintext
# This add-on is deployed to a Linux container. core.autocrlf=true on the
|
|
# authoring box gave the checkout CRLF, so a plain copy shipped CRLF files -
|
|
# run.sh with CRLF is a "bad interpreter" failure, and any hash-based drift
|
|
# check between repo and deployment fails for a reason that has nothing to do
|
|
# with the code. Deploy with:
|
|
# git -c core.autocrlf=false archive release/1.0 goodwe_controller | tar -x
|
|
# which is how 0.3.0 went out, byte-identical to the blobs.
|
|
* text=auto eol=lf
|
|
*.png binary
|
|
*.gz binary
|
|
|
|
# `.gitea/workflows/*.yml` steps embed shell heredocs; a `\r` on the terminator
|
|
# line means the heredoc never closes and the job fails on a syntax error that is
|
|
# invisible in the diff. A Windows checkout with core.autocrlf=true would
|
|
# reintroduce it on the next edit. CI-01.
|
|
*.yml text eol=lf
|
|
*.yaml text eol=lf
|
|
Dockerfile text eol=lf
|