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
45 lines
1.6 KiB
Bash
Executable File
45 lines
1.6 KiB
Bash
Executable File
#!/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"
|