Files
Linking-Tool/Taskfile.yml

175 lines
4.5 KiB
YAML

version: '3'
vars:
BINARY_NAME: linking-tool
BUILD_DIR: bin
tasks:
default:
desc: Show available tasks
cmds:
- task --list
dev:
desc: Run development servers (Go & SvelteKit)
cmds:
- pnpm install
- pnpm run dev
build:
desc: Build the single binary web server
cmds:
- pnpm install
- pnpm run build
- mkdir -p {{.BUILD_DIR}}
- CGO_ENABLED=0 go build -ldflags="-s -w" -o {{.BUILD_DIR}}/{{.BINARY_NAME}} main.go
package:
desc: Package the application
deps: [build]
release:
desc: Build binaries for all platforms
deps: [build]
cmds:
- task: build-linux-amd64
- task: build-linux-arm64
- task: build-linux-armv6
- task: build-linux-armv7
- task: build-windows-amd64
- task: build-darwin-amd64
- task: build-darwin-arm64
- task: build-freebsd-amd64
build-linux-amd64:
desc: Build Linux AMD64 binary
cmds:
- GOOS=linux GOARCH=amd64 go build -o {{.BUILD_DIR}}/{{.BINARY_NAME}}-linux-amd64 main.go
build-linux-arm64:
desc: Build Linux ARM64 binary
cmds:
- GOOS=linux GOARCH=arm64 go build -o {{.BUILD_DIR}}/{{.BINARY_NAME}}-linux-arm64 main.go
build-linux-armv6:
desc: Build Linux ARMv6 binary
cmds:
- GOOS=linux GOARCH=arm GOARM=6 go build -o {{.BUILD_DIR}}/{{.BINARY_NAME}}-linux-armv6 main.go
build-linux-armv7:
desc: Build Linux ARMv7 binary
cmds:
- GOOS=linux GOARCH=arm GOARM=7 go build -o {{.BUILD_DIR}}/{{.BINARY_NAME}}-linux-armv7 main.go
build-windows-amd64:
desc: Build Windows AMD64 binary
cmds:
- GOOS=windows GOARCH=amd64 go build -o {{.BUILD_DIR}}/{{.BINARY_NAME}}-windows-amd64.exe main.go
build-darwin-amd64:
desc: Build Darwin AMD64 binary
cmds:
- GOOS=darwin GOARCH=amd64 go build -o {{.BUILD_DIR}}/{{.BINARY_NAME}}-darwin-amd64 main.go
build-darwin-arm64:
desc: Build Darwin ARM64 binary
cmds:
- GOOS=darwin GOARCH=arm64 go build -o {{.BUILD_DIR}}/{{.BINARY_NAME}}-darwin-arm64 main.go
build-freebsd-amd64:
desc: Build FreeBSD AMD64 binary
cmds:
- GOOS=freebsd GOARCH=amd64 go build -o {{.BUILD_DIR}}/{{.BINARY_NAME}}-freebsd-amd64 main.go
docker-build:
desc: Build Docker image
cmds:
- docker build -f docker/Dockerfile -t {{.BINARY_NAME}} .
docker-run:
desc: Run Docker container
cmds:
- docker run -p 8080:8080 {{.BINARY_NAME}}
docker-builder:
desc: Build and extract binaries using Docker
cmds:
- docker build -f docker/Dockerfile.build -t {{.BINARY_NAME}}-build .
- docker create --name {{.BINARY_NAME}}-temp {{.BINARY_NAME}}-build
- mkdir -p {{.BUILD_DIR}}
- docker cp {{.BINARY_NAME}}-temp:/bin/. {{.BUILD_DIR}}/
- docker cp {{.BINARY_NAME}}-temp:/desktop-bin/. {{.BUILD_DIR}}/
- docker rm {{.BINARY_NAME}}-temp
desktop-build:
desc: Build desktop application
deps: [build]
cmds:
- rm -rf desktop/frontend_dist/*
- cp -r build/* desktop/frontend_dist/
- cd desktop && wails build -s
desktop-windows:
desc: Build desktop application for Windows
deps: [build]
cmds:
- rm -rf desktop/frontend_dist/*
- cp -r build/* desktop/frontend_dist/
- cd desktop && wails build -s -platform windows/amd64
desktop-darwin:
desc: Build desktop application for Darwin
deps: [build]
cmds:
- rm -rf desktop/frontend_dist/*
- cp -r build/* desktop/frontend_dist/
- cd desktop && wails build -s -platform darwin/universal
desktop-dev:
desc: Run desktop application in development mode
deps: [build]
cmds:
- rm -rf desktop/frontend_dist/*
- cp -r build/* desktop/frontend_dist/
- cd desktop && wails dev
clean:
desc: Clean build artifacts
cmds:
- rm -rf .svelte-kit build node_modules node_modules/.vite dist package linking-tool tmp {{.BUILD_DIR}}
install:
desc: Install dependencies
cmds:
- pnpm install
preview:
desc: Preview production build
cmds:
- pnpm run preview
check:
desc: Run type checking
cmds:
- pnpm run check
lint:
desc: Run linter
cmds:
- pnpm run lint
format:
desc: Format code
cmds:
- pnpm run format
version:minor:
desc: Bump minor version in package.json
cmds:
- pnpm version minor --no-git-tag-version
version:major:
desc: Bump major version in package.json
cmds:
- pnpm version major --no-git-tag-version