feat: live tracker suite - WIKITOOL_TASKS_CONFIG override, real-tracker tests for Super Productivity and CalDAV, nightly workflow and test image (#156)
CI / verify (push) Failing after 2m1s
Release / release (push) Successful in 38s

Files changed:
- .gitea/scripts/start-radicale.sh
- .gitea/sp-live/Dockerfile
- .gitea/sp-live/resolve-version.sh
- .gitea/workflows/ci.yml
- .gitea/workflows/sp-live-image.yml
- .gitea/workflows/tracker-live.yml
- .gitignore
- CHANGES.md
- DEVELOPMENT.md
- INSTALL.md
- VERSION
- instructions/dev/doc-pull-through.md
- instructions/dev/stack-dev/SKILL.md
- instructions/dev/testing-conventions.md
- instructions/dev/tracker-testing.md
- kb/gtd/INDEX.md
- kb/gtd/technik/Chemenu 8.0.0 freigeben.md
- kb/gtd/technik/Windows nativ unterstützen.md
- kb/index.md
- tools/CONTRACT.md
- tools/chemenu/commands/docs_verify.py
- tools/chemenu/commands/doctor.py
- tools/chemenu/commands/review_cmd.py
- tools/chemenu/commands/task_cmd.py
- tools/chemenu/config.py
- tools/chemenu/tasks/config.py
- tools/chemenu/tests/conftest.py
- tools/chemenu/tests/fixtures/sp/MANIFEST.json
- tools/chemenu/tests/fixtures/sp/api/health.json
- tools/chemenu/tests/fixtures/sp/api/projects.json
- tools/chemenu/tests/fixtures/sp/api/tags.json
- tools/chemenu/tests/fixtures/sp/api/tasks.json
- tools/chemenu/tests/fixtures/sp/seed-backup.json
- tools/chemenu/tests/record_sp_fixtures.py
- tools/chemenu/tests/sp_headless.py
- tools/chemenu/tests/test_doctor.py
- tools/chemenu/tests/test_review.py
- tools/chemenu/tests/test_sp_recorded.py
- tools/chemenu/tests/test_task_cmd.py
- tools/chemenu/tests/test_tasks_config.py
- tools/chemenu/tests/test_tracker_live.py
- tools/chemenu/tests/tracker_live.py
- tools/pytest.ini
This commit is contained in:
torben committed 2026-09-30 13:23:24 +02:00
1 parent 529793b255
commit b0c64772cc
43 files changed
+2279 -32

No files matched your search

+44
View File
@@ -0,0 +1,44 @@
#!/bin/sh
# Start a throwaway Radicale (a small CalDAV server) for the live tracker suite (Gitea #156).
#
# start-radicale.sh <python-with-radicale> <work-dir>
#
# Radicale runs as a background process, not a service container: the jobs that call this
# already run inside a job container, and a process on 127.0.0.1 needs no network wiring.
# Appends the CHEMENU_LIVE_CALDAV_* variables to $GITHUB_ENV, so the pytest step that follows
# runs the CalDAV half of the live suite - with CHEMENU_LIVE_REQUIRE=caldav set by the
# workflow, so a server that did not come up fails the run instead of skipping it.
set -eu
python="$1"
work="$2"
mkdir -p "$work"
printf 'ci:ci-live-secret\n' > "$work/users"
cat > "$work/config" <<CONF
[server]
hosts = 127.0.0.1:5232
[auth]
type = htpasswd
htpasswd_filename = $work/users
htpasswd_encryption = plain
[storage]
filesystem_folder = $work/data
CONF
"$python" -m radicale --config "$work/config" > "$work/radicale.log" 2>&1 &
i=0
until curl -fsS -o /dev/null -u ci:ci-live-secret -X PROPFIND -H 'Depth: 0' http://127.0.0.1:5232/ci/; do
i=$((i + 1))
if [ "$i" -gt 30 ]; then
echo "radicale did not come up:" >&2
cat "$work/radicale.log" >&2
exit 1
fi
sleep 1
done
version="$("$python" -m radicale --version 2>/dev/null | tail -n 1)"
{
echo "CHEMENU_LIVE_CALDAV_URL=http://127.0.0.1:5232/ci/"
echo "CHEMENU_LIVE_CALDAV_USER=ci"
echo "CHEMENU_LIVE_CALDAV_PASSWORD=ci-live-secret"
echo "CHEMENU_LIVE_CALDAV_VERSION=radicale $version"
} >> "${GITHUB_ENV:?start-radicale.sh runs inside a workflow step}"
echo "radicale $version is up"