Files
cocoa/Taskfile.yml
Shin'ya Minazuki 8d9dc84f3a (Try to) support taskfile.dev for building
GNU Make syntax gives anyone a huge headache

Signed-off-by: Shin'ya Minazuki <shinyoukai@laidback.moe>
2026-02-18 23:10:04 -03:00

64 lines
1.6 KiB
YAML

# 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