Add README and Gitea CI with demo artifact upload.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,70 @@
|
|||||||
|
name: CI
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test-and-build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: golang:latest
|
||||||
|
options: --network host
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: List files in the repository
|
||||||
|
run: ls ${{ gitea.workspace }}
|
||||||
|
|
||||||
|
- name: Download modules
|
||||||
|
run: go mod download
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: make test
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: make build
|
||||||
|
|
||||||
|
- name: Version
|
||||||
|
run: make version
|
||||||
|
|
||||||
|
- name: Upload binary
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: tm
|
||||||
|
path: ./bin/tm
|
||||||
|
|
||||||
|
- run: echo "This job's status is ${{ job.status }}."
|
||||||
|
|
||||||
|
demo:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: test-and-build
|
||||||
|
container:
|
||||||
|
image: ghcr.io/charmbracelet/vhs:latest
|
||||||
|
options: --network host
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Download binary
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: tm
|
||||||
|
path: ./bin
|
||||||
|
|
||||||
|
- name: Make binary executable
|
||||||
|
run: chmod +x ./bin/tm
|
||||||
|
|
||||||
|
- name: Install vim (used as EDITOR in the tape)
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y --no-install-recommends vim
|
||||||
|
|
||||||
|
- name: Record demo
|
||||||
|
run: vhs demo.tape
|
||||||
|
|
||||||
|
- name: Upload demo
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: demo
|
||||||
|
path: |
|
||||||
|
demo.gif
|
||||||
|
demo.mp4
|
||||||
+1
-1
@@ -3,6 +3,6 @@
|
|||||||
*.exe
|
*.exe
|
||||||
*.test
|
*.test
|
||||||
*.out
|
*.out
|
||||||
demo.gif
|
# Generated by `make demo` / CI — commit demo.gif so the README preview works on Gitea
|
||||||
demo.mp4
|
demo.mp4
|
||||||
demo.webm
|
demo.webm
|
||||||
|
|||||||
@@ -0,0 +1,95 @@
|
|||||||
|
# task-master
|
||||||
|
|
||||||
|
Offline-first Terminal-Taskmanager (`tm`) — Kanban-Board, Markdown-Tickets, Checklisten, Zeiterfassung und Reports. Gebaut mit [Bubble Tea](https://github.com/charmbracelet/bubbletea).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
> Demo wird aus [`demo.tape`](demo.tape) erzeugt (`make demo`). Ohne GIF lokal: siehe [Demo aufnehmen](#demo-aufnehmen).
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Projekte & Tickets lokal als JSON (kein Server)
|
||||||
|
- Board-Filter: All / Backlog / In Progress / Done
|
||||||
|
- Tickets in `$EDITOR` bearbeiten (Markdown + Checklisten)
|
||||||
|
- Timer, manuelle Zeitbuchungen, Zeiteinträge verwalten
|
||||||
|
- Report mit Group-by (Ticket / Tag)
|
||||||
|
- Undo / Redo über eine Command-History
|
||||||
|
- Vim-Style Keybindings
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
Voraussetzung: Go (siehe `go.mod`).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone git@git.aloxdrim.de:skruecken/task-master.git
|
||||||
|
cd task-master
|
||||||
|
make install # → $(go env GOPATH)/bin/tm
|
||||||
|
# oder nur bauen:
|
||||||
|
make build # → ./bin/tm
|
||||||
|
```
|
||||||
|
|
||||||
|
## Nutzung
|
||||||
|
|
||||||
|
```bash
|
||||||
|
tm # TUI starten
|
||||||
|
tm version # Build-Version (Git-Hash)
|
||||||
|
tm help
|
||||||
|
```
|
||||||
|
|
||||||
|
Sandbox ohne echte Config/Daten:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make run-dev # nutzt ./.dev-home
|
||||||
|
# oder:
|
||||||
|
TASK_MASTER_HOME=/tmp/tm-sandbox tm
|
||||||
|
```
|
||||||
|
|
||||||
|
Daten landen standardmäßig unter `~/.local/share/task-master`, Config unter `~/.config/task-master`.
|
||||||
|
|
||||||
|
| Variable | Wirkung |
|
||||||
|
|----------------------|----------------------------------------------|
|
||||||
|
| `TASK_MASTER_HOME` | Basis für Config + Daten (Dev/Demo) |
|
||||||
|
| `TASK_MASTER_DATA_DIR` | Nur Datenverzeichnis überschreiben |
|
||||||
|
|
||||||
|
## Keybindings (Auszug)
|
||||||
|
|
||||||
|
| Taste | Aktion |
|
||||||
|
|---------|------------------------|
|
||||||
|
| `j`/`k` | Navigieren |
|
||||||
|
| `n` | Neues Ticket/Projekt |
|
||||||
|
| `e` | Ticket im Editor |
|
||||||
|
| `s` | Status ändern |
|
||||||
|
| `l` | Board-Filter |
|
||||||
|
| `/` | Suche |
|
||||||
|
| `p`/`P` | Projekt / Ticket verschieben |
|
||||||
|
| `t`/`T` | Timer / Zeit buchen |
|
||||||
|
| `m` | Zeiteinträge |
|
||||||
|
| `r` | Report |
|
||||||
|
| `x`/`X` | Löschen / Force-Delete |
|
||||||
|
| `u`/`U` | Undo / Redo |
|
||||||
|
| `q` | Beenden |
|
||||||
|
|
||||||
|
Checklisten im Preview: `J`/`K` + `Space`.
|
||||||
|
|
||||||
|
## Entwicklung
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make test
|
||||||
|
make build
|
||||||
|
make version
|
||||||
|
```
|
||||||
|
|
||||||
|
## Demo aufnehmen
|
||||||
|
|
||||||
|
Die Walkthrough-Aufnahme steckt in [`demo.tape`](demo.tape) ([VHS](https://github.com/charmbracelet/vhs)):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# einmalig: vhs + ttyd/ffmpeg (siehe VHS-Docs)
|
||||||
|
make demo # schreibt demo.gif (+ demo.mp4)
|
||||||
|
```
|
||||||
|
|
||||||
|
Die Pipeline erzeugt das GIF ebenfalls und lädt es als Artifact hoch.
|
||||||
|
|
||||||
|
## Lizenz
|
||||||
|
|
||||||
|
Privat / eigener Use — siehe Repository-Einstellungen auf Gitea.
|
||||||
@@ -27,7 +27,7 @@ Hide
|
|||||||
Type "rm -rf /tmp/task-master-vhs && mkdir -p /tmp/task-master-vhs"
|
Type "rm -rf /tmp/task-master-vhs && mkdir -p /tmp/task-master-vhs"
|
||||||
Enter
|
Enter
|
||||||
Sleep 300ms
|
Sleep 300ms
|
||||||
Type "make build"
|
Type "test -x ./bin/tm || make build"
|
||||||
Enter
|
Enter
|
||||||
Sleep 5s
|
Sleep 5s
|
||||||
Show
|
Show
|
||||||
|
|||||||
Reference in New Issue
Block a user