Files
chemenu/.gitea/workflows/tracker-live.yml
T
torben dea98d4bc0
CI / verify (push) Successful in 1m54s
docs(ci): tracker-live records that act_runner force-pulls the job image anonymously (#156)
Files changed:
- .gitea/workflows/tracker-live.yml
2026-09-30 13:53:51 +02:00

71 lines
3.0 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
# act_runner pulls the job image with `forcePull=true` and no credentials (observed on
# the first run, 442), so `:latest` is always the registry's current one. What can
# still lag is the image itself - a release the daily build has not picked up yet. So
# the run compares what is installed with what the update channel names now.
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