Files
transfer-site/Taskfile.yml
zhilv 8265df0dcd feat: 初始提交 - Code Server Bridge完整实现
- OAuth认证系统(Gitea + Lua扩展)
- Git自动化操作(本地/SSH远程)
- 实时进度WebSocket推送
- 现代化Tab界面UI
- Cobra CLI命令行(init/version/serve)
- 完整构建系统(Makefile + Taskfile)
- UPX压缩支持(体积减少70%)
2026-01-08 23:32:29 +08:00

103 lines
3.2 KiB
YAML

version: '3'
vars:
APP_NAME: code-server-bridge
ENTRY: ./cmd/server
OUTPUT_DIR: bin
VERSION:
sh: git describe --tags --always --dirty 2>/dev/null || echo "dev"
BUILD_TIME:
sh: date -u '+%Y-%m-%d_%H:%M:%S'
GIT_COMMIT:
sh: git rev-parse --short HEAD 2>/dev/null || echo "unknown"
tasks:
default:
desc: Build for current platform
cmds:
- task: build
build:
desc: Build for current platform
vars:
LDFLAGS: '-s -w -X "main.Version={{.VERSION}}" -X "main.BuildTime={{.BUILD_TIME}}" -X "main.GitCommit={{.GIT_COMMIT}}"'
cmds:
- echo "Building {{.APP_NAME}} v{{.VERSION}}..."
- go build -ldflags "{{.LDFLAGS}}" -o {{.APP_NAME}} {{.ENTRY}}
- echo "Build complete - {{.APP_NAME}}"
build-linux:
desc: Build for Linux (amd64 arm64)
vars:
LDFLAGS: '-s -w -X "main.Version={{.VERSION}}" -X "main.BuildTime={{.BUILD_TIME}}" -X "main.GitCommit={{.GIT_COMMIT}}"'
cmds:
- mkdir -p {{.OUTPUT_DIR}}
- echo "Building Linux amd64..."
- cmd: GOOS=linux GOARCH=amd64 go build -ldflags "{{.LDFLAGS}}" -o {{.OUTPUT_DIR}}/{{.APP_NAME}}-linux-amd64 {{.ENTRY}}
- echo "Building Linux arm64..."
- cmd: GOOS=linux GOARCH=arm64 go build -ldflags "{{.LDFLAGS}}" -o {{.OUTPUT_DIR}}/{{.APP_NAME}}-linux-arm64 {{.ENTRY}}
- echo "Linux builds complete"
build-windows:
desc: Build for Windows (amd64)
vars:
LDFLAGS: '-s -w -X "main.Version={{.VERSION}}" -X "main.BuildTime={{.BUILD_TIME}}" -X "main.GitCommit={{.GIT_COMMIT}}"'
cmds:
- mkdir -p {{.OUTPUT_DIR}}
- echo "Building Windows amd64..."
- cmd: GOOS=windows GOARCH=amd64 go build -ldflags "{{.LDFLAGS}}" -o {{.OUTPUT_DIR}}/{{.APP_NAME}}-windows-amd64.exe {{.ENTRY}}
- echo "Windows builds complete"
build-all:
desc: Build for all platforms
deps:
- build-linux
- build-windows
cmds:
- echo "All platform builds complete"
upx:
desc: Compress binaries with UPX
cmds:
- |
if command -v upx > /dev/null 2>&1; then
for file in {{.OUTPUT_DIR}}/*; do
if [ -f "$file" ]; then
echo "Compressing $file..."
upx --best --lzma "$file" 2>/dev/null || echo "UPX compression failed: $file"
fi
done
echo "UPX compression complete"
else
echo "UPX not found, skipping compression"
echo "Install UPX: https://upx.github.io/"
fi
package:
desc: Build, compress and package releases
deps:
- build-all
- upx
cmds:
- mkdir -p releases
- tar -czf releases/{{.APP_NAME}}-{{.VERSION}}-linux-amd64.tar.gz -C {{.OUTPUT_DIR}} {{.APP_NAME}}-linux-amd64
- tar -czf releases/{{.APP_NAME}}-{{.VERSION}}-linux-arm64.tar.gz -C {{.OUTPUT_DIR}} {{.APP_NAME}}-linux-arm64
- cd {{.OUTPUT_DIR}} && zip -q ../releases/{{.APP_NAME}}-{{.VERSION}}-windows-amd64.zip {{.APP_NAME}}-windows-amd64.exe
- echo "Packaging complete - releases/"
clean:
desc: Clean build artifacts
cmds:
- rm -rf {{.OUTPUT_DIR}} releases {{.APP_NAME}} {{.APP_NAME}}.exe
- echo "Clean complete"
dev:
desc: Run in development mode
cmds:
- go run {{.ENTRY}}
test:
desc: Run tests
cmds:
- go test -v ./...