From 8d9dc84f3ae7374fcb59ec31a9fa1531fda3c6bf Mon Sep 17 00:00:00 2001 From: Shin'ya Minazuki Date: Wed, 18 Feb 2026 23:10:04 -0300 Subject: [PATCH] (Try to) support taskfile.dev for building GNU Make syntax gives anyone a huge headache Signed-off-by: Shin'ya Minazuki --- .gitignore | 1 + Taskfile.yml | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 Taskfile.yml diff --git a/.gitignore b/.gitignore index 28385a8455..bc00a40d22 100644 --- a/.gitignore +++ b/.gitignore @@ -127,6 +127,7 @@ prime/ # Emacs \#*\# +*~ # Vim *.sw* diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000000..a77883f495 --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,63 @@ +# Copyright (C) 2026 Cocoa Developers +# SPDX-License-Identifier: CDDL-1.0 +# https://taskfile.dev + +version: '3' + +vars: + MAKE_VERSION: + sh: task --version + PROJECT_NAME: "Cocoa" + VERSION: + sh: git describe --tags + +tasks: + backend: + desc: "Build backend for {{.PROJECT_NAME}}" + internal: true + cmds: + - go generate -tags "{{.TAGS}}" ./... + - go build -v -ldflags "-s -w -X main.Version={{.VERSION}} -X main.MakeVersion='Task {{.MAKE_VERSION}}' -X main.Tags={{.TAGS}}" -tags "{{.TAGS}}" -o cocoa + vars: + TAGS: "bindata" + build: + desc: "Build {{.PROJECT_NAME}}" + cmds: + - task: frontend + - task: backend + clean: + desc: "Clean up generated artifacts" + cmds: + - rm -f {{.EXE}} + - rm -f modules/migration/bindata.* + - rm -f modules/public/bindata.* + - rm -f modules/options/bindata.* + - rm -f modules/templates/bindata.* + clean-all: + desc: "Remove everything (implies clean)" + cmds: + - task: clean + - rm -rf node_modules + - rm -rf public/assets/css + - rm -rf public/assets/fonts + - rm -rf public/assets/js + default: + cmds: + - task -l + silent: true + frontend: + desc: "Build frontend for {{.PROJECT_NAME}}" + internal: true + cmds: + - pnpm install --frozen-lockfile + - pnpm exec webpack --disable-interpret + env: + BROWSERSLIST_IGNORE_OLD_DATA: "true" + NODE_ENV: "production" + sources: + - web_src/css/*.css + - web_src/js/*.js + generates: + - public/assets/css/*.css + - public/assets/fonts/* + - public/assets/js/*.js