CI / verify (push) Successful in 1m54s
Files changed: - .gitea/workflows/tracker-live.yml
71 lines
3.0 KiB
YAML
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
|