From b03bc2069f9b7eba469ee9e9f83892b599d00b11 Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Tue, 28 Jul 2026 18:37:26 +0200 Subject: [PATCH] Add example VS Code tasks and README Co-Authored-By: Claude Fable 5 --- README.md | 32 ++++++++++++++++++++++++++++++++ example-tasks.json | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 README.md create mode 100644 example-tasks.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..b36b063 --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +# love-tools + +CI/CD templates for [LÖVE](https://love2d.org) (Love2D/Lua) game +projects, in the same spirit as [tic80-tools](../tic80-tools). + +- `example-makefile.make` — project Makefile: local dev targets + (`build`, `love`, `web`, `export`, `watch`, `clean`) plus the + Woodpecker pipeline targets (`ci-version`, `ci-export`, `ci-upload`, + `ci-update`). +- `example-woodpecker.yaml` — Woodpecker pipeline: version → export + (`.love` package + love.js web build) → upload (scp to the droparea) + → update (calls the teletypegames `/update` endpoint with + `platform=love`). +- `example-tasks.json` — VS Code `.vscode/tasks.json` with the common + dev tasks: **Run Löve** (`love .`, default build task, + `Cmd+Shift+B`), **Build & Run Löve**, **Build .love package** and + **Make build**. + +## Usage in a game repo + +1. Copy `example-makefile.make` to `Makefile` and set `PROJECT` + (the package is built as `dist/$(PROJECT).love`). +2. Copy `example-woodpecker.yaml` to `.woodpecker.yaml` and add the + `droparea_ssh_password` / `update_secret_key` secrets in Woodpecker. +3. Copy `example-tasks.json` to `.vscode/tasks.json`. + +The pipeline uploads `$(PROJECT)-$(VERSION).love.zip`, +`$(PROJECT)-$(VERSION).html.zip` and the versioned `metadata.json` to +the droparea, then triggers `/update` twice: once with `platform=love` +(desktop package) and once with `platform=love-web` (web build). + +Detailed documentation lives on the wiki: `/development/love`. diff --git a/example-tasks.json b/example-tasks.json new file mode 100644 index 0000000..c0771c5 --- /dev/null +++ b/example-tasks.json @@ -0,0 +1,35 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + // Copy to .vscode/tasks.json. + "version": "2.0.0", + "tasks": [ + { + "label": "Run Löve", + "type": "shell", + "command": "love .", + "problemMatcher": [], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Build & Run Löve", + "type": "shell", + "command": "make clean && make build && love .", + "problemMatcher": [] + }, + { + "label": "Build .love package", + "type": "shell", + "command": "make love", + "problemMatcher": [] + }, + { + "label": "Make build", + "type": "shell", + "command": "make build" + } + ] +}