Compare commits

..
Author SHA1 Message Date
community-scripts-pr-app[bot]andgithub-actions[bot] 453d1a4699 Update CHANGELOG.md (#18643)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-12 17:15:14 +00:00
CanbiZ (MickLesk) 851f9622ac OnlyOffice: change ct port to 8083 (#18642) 2026-11-12 18:14:42 +01:00
Rögl-Brunner Michel 5fb1baca11 pr-script-test: fit the check summary into 65535 bytes
GitHub limits a check run summary to 65535 bytes, not characters. The
shopware report (DevScripts PR 2478) had emoji-heavy logs and failed with
422. Cut by bytes at a character boundary and close an open log block.
2026-11-12 16:12:46 +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
community-scripts-pr-app[bot]andgithub-actions[bot] c4493b2671 Update CHANGELOG.md (#18641)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-12 14:48:41 +00:00
CanbiZ (MickLesk) 445ecd6da7 dotnetaspwebapi: start the service only once an app is deployed (#18639) 2026-11-12 15:47:59 +01:00
community-scripts-pr-app[bot]andgithub-actions[bot] 1b21c6a585 Update CHANGELOG.md (#18638)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-12 13:53:20 +00:00
CanbiZ (MickLesk) 1d119abb23 Bump workflow actions to their current majors (#18637) 2026-11-12 14:52:54 +01:00
5 changed files with 42 additions and 18 deletions

No files matched your search

+2 -2
View File
@@ -39,7 +39,7 @@ jobs:
timeout-minutes: 120
steps:
# The harness from the default branch, as in pr-script-test.yml.
- uses: actions/checkout@v5
- uses: actions/checkout@v7
with:
sparse-checkout: .github/workflows/scripts
persist-credentials: false
@@ -106,7 +106,7 @@ jobs:
} >>"$GITHUB_STEP_SUMMARY"
- if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: result-arm
path: ${{ runner.temp }}/result
+15 -6
View File
@@ -98,7 +98,7 @@ jobs:
base_sha: ${{ steps.plan.outputs.base_sha }}
steps:
- id: plan
uses: actions/github-script@v8
uses: actions/github-script@v9
with:
script: |
const { owner, repo } = context.repo;
@@ -402,7 +402,7 @@ jobs:
name: test (${{ matrix.name }})
steps:
# The default branch, never the PR: the harness itself must be trusted.
- uses: actions/checkout@v5
- uses: actions/checkout@v7
with:
sparse-checkout: .github/workflows/scripts
persist-credentials: false
@@ -443,7 +443,7 @@ jobs:
run: sudo chmod -R a+rX "$RUNNER_TEMP/result" 2>/dev/null || true
- if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: result-${{ matrix.name }}
path: ${{ runner.temp }}/result
@@ -461,12 +461,12 @@ jobs:
issues: write
pull-requests: write
steps:
- uses: actions/download-artifact@v5
- uses: actions/download-artifact@v8
with:
pattern: result-*
path: results
- uses: actions/github-script@v8
- uses: actions/github-script@v9
env:
MATRIX: ${{ needs.gate.outputs.matrix }}
PR: ${{ needs.gate.outputs.pr }}
@@ -657,6 +657,15 @@ jobs:
// and a log that does not fit loses its beginning: the end is where
// a failure shows.
const budget = Math.floor(52000 / rows.length);
// A check run summary holds 65535 BYTES, not characters, and log
// emoji take 3-4 bytes each. Cut at a character boundary and close
// a ~~~~ block left open.
const fitBytes = (text, max) => {
if (Buffer.byteLength(text) <= max) return text;
let cut = Buffer.from(text).subarray(0, max - 300).toString('utf8').replace(/�+$/, '');
if ((cut.match(/^~~~~/gm) || []).length % 2) cut += '\n~~~~';
return `${cut}\n\n… cut to fit GitHub's size limit; the full report is in the PR comment and the logs in the run artifacts.`;
};
const tail = (text, max) => {
text = fence(text).trimEnd();
if (text.length <= max) return text;
@@ -739,7 +748,7 @@ jobs:
title: armOnly
? `ARM64 ${armPassed}/${armRows.length} passed (information only)`
: `${passed}/${coreRows.length} passed${armRows.length ? ` (+ ARM ${armPassed}/${armRows.length}, not counted)` : ''}`,
summary: summary.slice(0, 65000),
summary: fitBytes(summary, 65000),
},
});
}
+20 -8
View File
@@ -654,10 +654,10 @@ check_health screenshot.png || fail "$health_problem"
# A fresh install is already on the latest release, so a plain `update` would
# only say "No update available" and never run update_script's real path. The
# version files the install wrote (~/.<app>, one per fetch_and_deploy_gh_release)
# that update_script checks are set back to 0.0.0-ci first; check_for_gh_release then sees an update and
# runs it all. Apps deployed from a branch (fetch_and_deploy_gh_branch, checked
# with check_for_gh_branch) store a commit hash instead of a version; the
# engine compares both as plain strings, so 0.0.0-ci works for them too. `update` is the /usr/bin/update the install generated: it pulls
# that update_script checks are set back first (see below); check_for_gh_release
# then sees an update and runs it all. Apps deployed from a branch
# (fetch_and_deploy_gh_branch, checked with check_for_gh_branch) store a commit
# hash instead of a version. `update` is the /usr/bin/update the install generated: it pulls
# ct/<app>.sh from the URL this container was built from, i.e. the PR's tree.
UPDATE_FAKE="0.0.0-ci"
update_fail() {
@@ -681,11 +681,23 @@ tracked=$(grep -oE 'check_for_[a-z]*_?release[[:space:]]+("[^"]*"|[^[:space:]]+)
if [[ -n "$tracked" && "$tracked" != *'$'* ]]; then
version_files=$(grep -xF -f <(sed 's|^|/root/.|' <<<"$tracked") <<<"$version_files" || true)
fi
# A version keeps its digits and gets "-dev" (6.7.16.0 -> 6.7.16.0-dev): the
# engine ranks that below the release, so the update runs, and an
# update_script that reads the installed series (shopware: composer
# "~6.7.0" from ~/.shopware) still gets the real one. 0.0.0-ci broke that.
# A commit hash (or a bare number) has no series and gets 0.0.0-ci.
declare -A update_fake=()
for f in $version_files; do
guest_exec sh -c "echo '$UPDATE_FAKE' > '$f'; rm -f '$f.pending'" ||
cur=$(guest_exec cat "$f" 2>/dev/null | tr -d '\r\n')
if [[ "$cur" =~ ^v?[0-9]+(\.[0-9A-Za-z_+-]+)+$ ]]; then
update_fake[$f]="${cur}-dev"
else
update_fake[$f]="$UPDATE_FAKE"
fi
guest_exec sh -c "echo '${update_fake[$f]}' > '$f'; rm -f '$f.pending'" ||
update_fail "could not reset $f"
echo "Update test: set back $f from ${cur} to ${update_fake[$f]}"
done
[[ -n "$version_files" ]] && echo "Update test: set back $(tr '\n' ' ' <<<"$version_files")to ${UPDATE_FAKE}"
phase="update"
# Upgrade test: the container pulls its update from where it was installed
@@ -746,8 +758,8 @@ fi
if strip_ansi <"$UPDATE_RAW" | grep -qi 'updated successfully'; then
update_status="updated"
for f in $version_files; do
[[ "$(guest_exec cat "$f" 2>/dev/null)" != "$UPDATE_FAKE" ]] ||
update_fail "reported success, but $f is still ${UPDATE_FAKE}"
[[ "$(guest_exec cat "$f" 2>/dev/null)" != "${update_fake[$f]}" ]] ||
update_fail "reported success, but $f is still ${update_fake[$f]}"
done
else
# Ran cleanly without updating anything: no version file to fake (apt/npm
+4 -1
View File
@@ -591,6 +591,8 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- #### 🐞 Bug Fixes
- OnlyOffice: change ct port to 8083 [@MickLesk](https://github.com/MickLesk) ([#18642](https://github.com/community-scripts/ProxmoxVE/pull/18642))
- dotnetaspwebapi: start the service only once an app is deployed [@MickLesk](https://github.com/MickLesk) ([#18639](https://github.com/community-scripts/ProxmoxVE/pull/18639))
- Whisparr-eros: set the first login and save it [@MickLesk](https://github.com/MickLesk) ([#18617](https://github.com/community-scripts/ProxmoxVE/pull/18617))
- #### 💥 Breaking Changes
@@ -599,7 +601,8 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
### 📚 Documentation
- pocketbase-bot: apply website metadata requests from Accept/Decline boxes [@MickLesk](https://github.com/MickLesk) ([#18631](https://github.com/community-scripts/ProxmoxVE/pull/18631))
- github: bump workflow actions to their current majors [@MickLesk](https://github.com/MickLesk) ([#18637](https://github.com/community-scripts/ProxmoxVE/pull/18637))
- pocketbase-bot: apply website metadata requests from Accept/Decline boxes [@MickLesk](https://github.com/MickLesk) ([#18631](https://github.com/community-scripts/ProxmoxVE/pull/18631))
## 2026-11-11
+1 -1
View File
@@ -52,4 +52,4 @@ description
msg_ok "Completed successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
echo -e "${GATEWAY}${BGN}http://${IP}${CL}"
echo -e "${GATEWAY}${BGN}http://${IP}:8083${CL}"