Update test: after a passing install, every version file the install
wrote (~/.<app>) is set back to 0.0.0-ci and the container's own
`update` runs unattended, pulling the PR's ct/ script, so
update_script's real path is exercised. It must report "Updated
successfully" without errors, and services and URL are checked again.
Apps without a version file get "nothing to update", a GitHub rate
limit counts as not tested. Separate Install and Update columns in the
report; a failed update requests changes like a failed install.
The job's read-only token is passed to the build so release lookups are
not rate limited (all test containers share one public IP).
/test <app> in an issue builds that app from main, install and update,
and answers in the issue; no check run, review or approval.
OpenCloud reads var_opencloud_${server}_fqdn for each server in
servers=("opencloud" "collabora" "wopi"), so the scan for literal
var_ names found nothing and the build stopped at the first prompt
(#18586). Templates of the form var_...${x}... are now expanded with
the words of `for x in ...`, or of the array that loop walks; nothing
is executed. Hostname-like answers are derived from the variable name
(ci-opencloud-collabora.example.test), so several cannot collide.
A maintainer comments `/test` on a pull request and a self-hosted
runner on a disposable Proxmox VE host builds every ct/ script the PR
touches (and the ct/ entry point of every changed install/ script),
checks the result and reports back on the PR.
- Gate: only users with write access; builds the latest commit only if
nothing was pushed to the fork after the comment, or a pinned
`/test <full sha>`.
- Build: the PR tree at that commit is served from the test host with
every raw.githubusercontent.com/community-scripts/ProxmoxVE/main URL
rewritten to it, so engine changes in the PR are tested too.
Unattended (mode=default); prompts declared the AGENTS.md way are
pre-answered with CI values.
- Checks: build and install succeed, container running, no failed
units, the URL the script prints answers 200. Screenshot of that URL.
- Report: check run, one comment (results, screenshot, install log,
mentions of the PR author and whoever asked), changes requested on a
real failure, dismissed again on a pass. CPU-feature failures (no
AVX2 on the test host) are marked untestable, not failed.
- The test job has a read-only token and no secrets; its runner carries
only the proxmox-test label. Container IDs 9050-9099.
Same file as in DevScripts; github.repository selects the URLs and the
container ID range.