- OAuth认证系统(Gitea + Lua扩展) - Git自动化操作(本地/SSH远程) - 实时进度WebSocket推送 - 现代化Tab界面UI - Cobra CLI命令行(init/version/serve) - 完整构建系统(Makefile + Taskfile) - UPX压缩支持(体积减少70%)
103 lines
3.2 KiB
YAML
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 ./...
|