feat: 初始提交 - Code Server Bridge完整实现
- OAuth认证系统(Gitea + Lua扩展) - Git自动化操作(本地/SSH远程) - 实时进度WebSocket推送 - 现代化Tab界面UI - Cobra CLI命令行(init/version/serve) - 完整构建系统(Makefile + Taskfile) - UPX压缩支持(体积减少70%)
This commit is contained in:
102
Taskfile.yml
Normal file
102
Taskfile.yml
Normal file
@@ -0,0 +1,102 @@
|
||||
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 ./...
|
||||
Reference in New Issue
Block a user