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
70 lines
2.9 KiB
YAML
70 lines
2.9 KiB
YAML
# The live tracker suite, nightly (Gitea #156): the documented `task` and `review` workflow
|
|
# against a real Super Productivity and a real CalDAV server, not against fakes.
|
|
#
|
|
# `ci.yml` already runs the CalDAV half on every push (Radicale is a pip install). This
|
|
# workflow adds the half that needs the desktop app, inside the prebuilt
|
|
# `chemenu-sp-live` image (`sp-live-image.yml`), and runs both, so one green night covers both
|
|
# providers.
|
|
#
|
|
# Red after a new Super Productivity release is the finding this workflow exists for, not a
|
|
# flaky night: `instructions/dev/tracker-testing.md` says what to do with it. An agent that
|
|
# touched the Super Productivity surface (`tasks/superproductivity.py`, `tasks/config.py`,
|
|
# the fixtures) dispatches it by hand instead of waiting for the clock.
|
|
#
|
|
# Runner: `linux-docker`, with the image as the job container. The image carries `nodejs`, so
|
|
# `actions/checkout` runs; see ci.yml for why that is the workflow's business.
|
|
|
|
name: Tracker live
|
|
|
|
on:
|
|
schedule:
|
|
- cron: '0 5 * * *'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
live:
|
|
runs-on: linux-docker
|
|
container:
|
|
image: gitea.nehmer.net/torben/chemenu-sp-live:latest
|
|
env:
|
|
WIKITOOL_SESSION_ID: tracker-live-${{ github.run_id }}
|
|
WIKI_TRACE_DIR: /tmp/wikitool-trace
|
|
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
|
|
- name: Which Super Productivity is this
|
|
# The image tag says which release it was built for; whether `:latest` was pulled
|
|
# fresh or served from the runner's cache is not certain. So the run compares what is
|
|
# installed with what the update channel names now, and says so in the log.
|
|
run: |
|
|
set -eu
|
|
installed="$(dpkg-query -W -f='${Version}' superproductivity)"
|
|
channel="$(.gitea/sp-live/resolve-version.sh latest | sed -n 's/^version=//p')"
|
|
echo "installed: $installed, update channel: $channel"
|
|
if [ "$installed" != "$channel" ]; then
|
|
echo "::warning::the image carries Super Productivity $installed, the update channel names $channel - this run tests an outdated app (stale runner cache or an image not rebuilt yet)"
|
|
fi
|
|
|
|
- name: Tool environment
|
|
run: |
|
|
set -eu
|
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
python3 -m venv tools/.venv
|
|
tools/.venv/bin/pip install --quiet --upgrade pip
|
|
tools/.venv/bin/pip install --quiet -r tools/requirements.txt
|
|
tools/.venv/bin/pip install --quiet pytest radicale
|
|
|
|
- name: Start Radicale
|
|
run: .gitea/scripts/start-radicale.sh tools/.venv/bin/python /tmp/radicale
|
|
|
|
- name: Live tracker suite
|
|
# Both kinds are required: a night in which the app or the server was not there must
|
|
# fail rather than skip.
|
|
env:
|
|
CHEMENU_LIVE_REQUIRE: sp,caldav
|
|
run: |
|
|
set -eu
|
|
cd tools
|
|
.venv/bin/python -m pytest -q -m live_tracker -s
|