feat: live tracker suite - WIKITOOL_TASKS_CONFIG override, real-tracker tests for Super Productivity and CalDAV, nightly workflow and test image (#156)
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:
1 parent
529793b255
commit
b0c64772cc
43 files changed
+2279
-32
No files matched your search
@@ -0,0 +1,30 @@
|
||||
# The image the nightly `tracker-live` workflow runs in: the packaged Super Productivity
|
||||
# desktop app, an X server to hold it, and what the suite itself needs (Gitea #156).
|
||||
# Built by `.gitea/workflows/sp-live-image.yml`, never by hand.
|
||||
FROM debian:trixie-slim
|
||||
|
||||
ARG SP_VERSION
|
||||
ARG SP_SHA512
|
||||
|
||||
# `nodejs` is for act_runner, which executes JavaScript actions (checkout) inside the
|
||||
# job container. `libasound2t64` and `libgbm1` are the two libraries the .deb does not
|
||||
# pull in and the app will not start without.
|
||||
RUN set -eu; \
|
||||
test -n "$SP_VERSION" && test -n "$SP_SHA512"; \
|
||||
apt-get update -qq; \
|
||||
apt-get install -y --no-install-recommends \
|
||||
ca-certificates curl git nodejs python3 python3-venv ripgrep \
|
||||
xvfb xauth libasound2t64 libgbm1; \
|
||||
curl -fsSL -o /tmp/sp.deb \
|
||||
"https://github.com/super-productivity/super-productivity/releases/download/v${SP_VERSION}/superProductivity-amd64.deb"; \
|
||||
expected="$(printf '%s' "$SP_SHA512" | base64 -d | od -An -v -tx1 | tr -d ' \n')"; \
|
||||
echo "${expected} /tmp/sp.deb" | sha512sum -c -; \
|
||||
apt-get install -y --no-install-recommends /tmp/sp.deb; \
|
||||
rm -rf /tmp/sp.deb /var/lib/apt/lists/*
|
||||
|
||||
LABEL org.opencontainers.image.title="chemenu-sp-live" \
|
||||
org.opencontainers.image.description="Packaged Super Productivity for chemenu's live tracker suite" \
|
||||
chemenu.sp-version="${SP_VERSION}"
|
||||
|
||||
ENV CHEMENU_LIVE_SP_BINARY="/opt/Super Productivity/superproductivity" \
|
||||
CHEMENU_LIVE_SP_VERSION="${SP_VERSION}"
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
# Which Super Productivity release, and the sha512 of its .deb, straight from the
|
||||
# update channel the desktop clients themselves follow (`latest-linux.yml`).
|
||||
#
|
||||
# resolve-version.sh the newest release
|
||||
# resolve-version.sh 19.1.0 that release
|
||||
#
|
||||
# Prints two lines, `version=<x>` and `sha512=<base64>`, so a workflow can append the
|
||||
# output to $GITHUB_OUTPUT as it is. Gitea #156: the test image follows the channel
|
||||
# rather than a pin, because installed apps update on their own and a pinned old
|
||||
# version would be tested against while users run the new one.
|
||||
set -eu
|
||||
base=https://github.com/super-productivity/super-productivity/releases
|
||||
if [ "${1:-latest}" = latest ]; then
|
||||
url="$base/latest/download/latest-linux.yml"
|
||||
else
|
||||
url="$base/download/v$1/latest-linux.yml"
|
||||
fi
|
||||
yml="$(curl -fsSL "$url")"
|
||||
version="$(printf '%s\n' "$yml" | sed -n 's/^version: *//p' | head -n 1)"
|
||||
sha512="$(printf '%s\n' "$yml" | awk '/url: superProductivity-amd64\.deb/ {found=1; next} found && /sha512:/ {print $2; exit}')"
|
||||
if [ -z "$version" ] || [ -z "$sha512" ]; then
|
||||
echo "resolve-version: no version/sha512 for the amd64 .deb in $url" >&2
|
||||
exit 1
|
||||
fi
|
||||
printf 'version=%s\nsha512=%s\n' "$version" "$sha512"
|
||||
Reference in new issue
Block a user