Commit Graph
43 Commits
Author SHA1 Message Date
Rögl-Brunner Michel 0033568ca5 pr-script-test: log which GitHub calls in the guest carry the token (temporary) 2026-11-13 13:14:04 +01:00
Rögl-Brunner Michel d887fb8e95 pr-script-test: probe whether the guest profile clears the token 2026-11-13 13:08:55 +01:00
Rögl-Brunner Michel fe4e449b2f pr-script-test: probe the token inside the guest, not on the host
On the host the job token reads another repo's release fine (200), yet
installs and updates in the guest hit the anonymous limit. Probe there,
just before the update. Also drops the /tmp file named after $$.
2026-11-13 13:02:11 +01:00
Rögl-Brunner Michel cd4b7aa63d pr-script-test: probe whether the job token can read another repo's release 2026-11-13 12:56:10 +01:00
Rögl-Brunner Michel b80d038846 pr-script-test: log the GitHub API quota, with and without the token
marimo (ProxmoxVE PR 18672) hit the rate limit in its update although the
job token is passed as GITHUB_TOKEN there. Log what both the token and the
lab address have left at the start and when an update hits the limit.
2026-11-13 12:49:35 +01:00
Rögl-Brunner Michel c9ba40bfdb pr-script-test: fail the URL check on bad answers, not on non-200
Warpgate answers 401 on its root, a login wall, and the check failed it
(DevScripts issue 2537). Any answer now counts as the app being up,
except no answer, 404/410, a 5xx or a redirect loop. Same rule for VMs.
2026-11-13 08:32:29 +01:00
Rögl-Brunner Michel 0d095e0435 pr-script-test: keep the version series when faking an old version
Version files were set back to 0.0.0-ci for the update test. Shopware's
update_script reads ~/.shopware to pin composer to the installed series
(~6.7.0), so it got ~0.0.0 and failed. Append -dev instead (6.7.16.0-dev):
the engine ranks it below the release, so the update still runs. Commit
hashes keep 0.0.0-ci.
2026-11-12 15:54:33 +01:00
Rögl-Brunner Michel 8144ce5d2a pr-script-test: no container noise in the journal note, real disk use on Incus 2026-11-12 12:31:25 +01:00
Rögl-Brunner Michel 548a6d92ec pr-script-test: upgrade test only in ProxmoxVE, and only for a changed update_script 2026-11-12 12:04:56 +01:00
Rögl-Brunner Michel b6123811be pr-script-test: upgrade path, second update, stability and resources 2026-11-12 11:42:26 +01:00
Rögl-Brunner Michel 3e9ce91252 pr-script-test: test the update of apps deployed from a branch too 2026-11-12 11:29:12 +01:00
Rögl-Brunner Michel 03ea5280e6 CI hosts: single-use, reset before every job 2026-11-12 11:11:19 +01:00
Rögl-Brunner Michel fb58720888 arm-runner-setup: get past the runner's DNS failing for the arm64 mirror
The ARM runner's resolver cannot resolve ports.ubuntu.com since this
afternoon; apt then hangs. The name is now looked up over DNS-over-HTTPS
when needed, and a failing apt prints the runner's network state.
2026-11-11 16:24:38 +01:00
Rögl-Brunner Michel 7258873339 arm-runner-setup: time limits, so a hung setup can't hold the report 2026-11-11 16:03:49 +01:00
Rögl-Brunner Michel 6163037afd pr-script-test: every ct/ script on ARM64 too, as information only
- ARM runs on GitHub's ubuntu-24.04-arm runner (free for public repos), set
  up by arm-runner-setup.sh: Incus 6.0 LTS from Zabbly (key pinned, APT
  pin), screenshots through Playwright. ARM rows are shown but never count:
  not in the headline, the check, the review or the approval, and the job
  runs with continue-on-error.
- var_arm64=no is not built on ARM; unset is built with var_arm64=yes.
- arm-script-test.yml builds one script on ARM by hand, posting nothing.
- Update test: only the versions update_script checks are set back.
- The screenshot browser gets a writable HOME.
2026-11-11 13:31:33 +01:00
Rögl-Brunner Michel 01f37f501f pr-script-test: build vm/ scripts, and every ct/ script on Incus too
- vm/ scripts run unattended (VM_UNATTENDED=1) on the Proxmox hosts, IDs
  9100-9199, one VM per host at a time. Checks: success line, the VM keeps
  running, a DHCP lease, and a ${VM_IP} URL answering 200. Console
  screenshot from QEMU when there is no web UI. ARM64-only scripts are
  listed as not built.
- Every ct/ script now builds on pve and incus (new incus-test runners,
  incus-ci-host-setup.sh); the comment gets a Platform column.
- Spinner frames are dropped from logs and live output.
- The sweeper ignores and removes locks of killed jobs (older than 3h).
2026-11-11 11:48:57 +01:00
Rögl-Brunner Michel f63d1bd425 pr-script-test: test the update too, and /test <app> in issues
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.
2026-11-11 10:46:01 +01:00
Rögl-Brunner Michel d859b2f764 pr-script-test: runners named after their host
A second test host (pve-ci-2) now serves both repositories. The setup
script registered runners as pve-ci-<repo> with --replace, which would
have made it take over the first host's registration; they are now
named <host>-<repo>.
2026-11-11 10:30:43 +01:00
Michel Roegl-Brunner 79481f3a74 pr-script-test: pre-answer prompt variables built in a loop (#18596)
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.
2026-11-10 16:22:06 +01:00
Michel Roegl-Brunner db30bcd960 Build PR scripts on a Proxmox test host via /test (#18594)
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.
2026-11-10 16:04:32 +01:00
CanbiZ (MickLesk) e773412791 Drop the local header generation; headers come from core (#17623) 2026-10-01 08:14:18 +02:00
CanbiZ (MickLesk) f212f93d89 Stop generating header filenames with a newline in them (#17435)
generate-app-headers.sh read APP with a plain grep -oP, so a script that
sets APP twice yielded both lines and the filename became
"almalinux
almalinux${var_version}vm". Three of those are in the tree
and they make main impossible to check out on Windows.

Nothing reads vm/headers: get_header fetches banners from the core
repo, which already carries clean almalinux, debian and ubuntu.
2026-09-22 14:30:44 +02:00
CanbiZ (MickLesk) 86d67affa3 Refactor: harmonize tools/addon and move boilerplate into core.func (#16202) 2026-08-04 21:02:03 +02:00
Michel Roegl-Brunner ef942a61c0 Cleanup workflows (#12818)
* Cleanup Workflows

* Cleanup unneded workflows
2026-03-12 14:29:48 +01:00
Tobias c1fe8b91b4 chore: bump copyright to 2026 - happy new year (#10585)
* chore: bump copyright to 2026 - happy new year

* fix

* meilisearch fix source url

* livebook: fix space

* fix source cmd

* fix source cmd
2026-01-06 13:28:12 +01:00
CanbiZ 7d3040ab76 [gh]: Feature: Header-Generation for vm | tools | addon (#4643) 2025-05-22 14:32:21 +02:00
Slaviša Arežina 9140fd52ac Use onliner for updates (#4414) 2025-05-12 16:07:07 +02:00
CanbiZandSlaviša Arežina 8c051b8186 Replace wget with curl -fsSL, normalize downloads, and prep for IPv6 (#3455)
* Initial Call, Switch from curl -s to curl -fsSL and wget to curl -fssL

* more switches

* switch vms

* more curls

* More curls

* more

* more

* more changes

* more

* prepare ipv6 calls

* change frontend to ipv6

* Formatting

* Fromatting

* Update gomft.sh

* Update gomft-install.sh

* Update ersatztv.sh

* Update build.func

---------

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-04-01 10:25:46 +02:00
Michel Roegl-Brunner 40469c5de5 [gh] Update Script Test Workflow (#2599)
* Update Workflow

* Update Workflow
2025-02-24 14:54:51 +01:00
Michel Roegl-Brunner 99813136fe Rework error handeling (#2377) 2025-02-13 21:43:17 +01:00
Michel Roegl-Brunner 221bbdeff3 Update pr-build.func (#2354)
* Update pr-build.func

* Update pr-build.func
2025-02-13 15:03:51 +01:00
Michel Roegl-Brunner caa4b7d19e [GH] Remove unwanted output from script test workflow (#2337)
* Remove unwanted output from workflow

* Remove unwanted output from workflow

* update .yml so it supports external repos

* update .yml so it supports external repos
2025-02-13 13:00:35 +01:00
Michel Roegl-Brunner bf5fc97e1a Add Workflow to test Scripts (#2269) 2025-02-11 18:45:50 +01:00
CanbiZ e23137eb63 Update update-json.sh 2025-02-11 10:48:58 +01:00
CanbiZ 33ee969d91 Create update-json.sh 2025-02-11 10:42:47 +01:00
CanbiZ 6be54478f4 fix typo 2025-02-04 13:37:30 +01:00
CanbiZ 6b225058de [Fix] Header breaks at long title (#2015) 2025-02-04 13:32:13 +01:00
CanbiZ 2db7cb1fdb Update generate-app-headers.sh 2025-01-24 14:50:19 +01:00
CanbiZ 7723269bbc Update generate-app-headers.sh 2025-01-24 14:47:51 +01:00
github-actions[bot]andGitHub Actions 4e8317d30c Update .app files (#1725)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-01-24 14:24:01 +01:00
CanbiZ 5415bfd21a Update generate-app-headers.sh 2025-01-24 14:16:47 +01:00
CanbiZ f29cbe5b46 [Core] Better Creation of App Headers for next feature (#1719)
* Update Function to crawl app Headers

* Update Function to crawl app Headers
2025-01-24 14:03:59 +01:00
CanbiZ d3b0becfe6 Switch from workflows to scripts folder 2025-01-15 11:25:31 +01:00