252 lines
6.9 KiB
YAML
252 lines
6.9 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:frontend:
|
|
desc: Build frontend only
|
|
cmds:
|
|
- |
|
|
if [ -z "$VITE_APP_VERSION" ]; then
|
|
if git rev-parse --git-dir > /dev/null 2>&1; then
|
|
if git describe --tags --exact-match HEAD > /dev/null 2>&1; then
|
|
VITE_APP_VERSION=$(git describe --tags --exact-match HEAD)
|
|
else
|
|
VITE_APP_VERSION=$(git rev-parse --short HEAD)
|
|
fi
|
|
else
|
|
VITE_APP_VERSION=$(node -p "require('./package.json').version")
|
|
fi
|
|
fi
|
|
VITE_APP_VERSION="$VITE_APP_VERSION" pnpm run build
|
|
|
|
build:backend:
|
|
desc: Build backend binary only
|
|
cmds:
|
|
- mkdir -p {{.BUILD_DIR}}
|
|
- CGO_ENABLED=0 go build -ldflags="-s -w" -o {{.BUILD_DIR}}/{{.BINARY_NAME}} main.go
|
|
|
|
build:
|
|
desc: Build the single binary web server
|
|
cmds:
|
|
- pnpm install
|
|
- |
|
|
if [ -z "$VITE_APP_VERSION" ]; then
|
|
if git rev-parse --git-dir > /dev/null 2>&1; then
|
|
if git describe --tags --exact-match HEAD > /dev/null 2>&1; then
|
|
VITE_APP_VERSION=$(git describe --tags --exact-match HEAD)
|
|
else
|
|
VITE_APP_VERSION=$(git rev-parse --short HEAD)
|
|
fi
|
|
else
|
|
VITE_APP_VERSION=$(node -p "require('./package.json').version")
|
|
fi
|
|
fi
|
|
VITE_APP_VERSION="$VITE_APP_VERSION" 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 (VITE_APP_VERSION env var will be passed as build arg if set)
|
|
cmds:
|
|
- |
|
|
if [ -n "$VITE_APP_VERSION" ]; then
|
|
docker build --build-arg VITE_APP_VERSION="$VITE_APP_VERSION" -f docker/Dockerfile -t {{.BINARY_NAME}} .
|
|
else
|
|
docker build -f docker/Dockerfile -t {{.BINARY_NAME}} .
|
|
fi
|
|
|
|
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
|
|
|
|
podman-build:
|
|
desc: Build Podman image
|
|
cmds:
|
|
- podman build -f docker/Dockerfile -t surveilled .
|
|
|
|
podman-run:
|
|
desc: Run Podman container
|
|
cmds:
|
|
- podman run --rm -p 3000:3000 surveilled
|
|
|
|
podman:
|
|
desc: Build and run Podman container
|
|
deps: [podman-build, podman-run]
|
|
|
|
desktop-build:
|
|
desc: Build desktop application
|
|
deps: [build]
|
|
cmds:
|
|
- mkdir -p desktop/frontend_dist
|
|
- rm -rf desktop/frontend_dist/*
|
|
- cp -r build/* desktop/frontend_dist/
|
|
- cd desktop && wails build -s
|
|
|
|
desktop-linux:
|
|
desc: Build desktop application for Linux
|
|
deps: [build]
|
|
cmds:
|
|
- mkdir -p desktop/frontend_dist
|
|
- rm -rf desktop/frontend_dist/*
|
|
- cp -r build/* desktop/frontend_dist/
|
|
- cd desktop && wails build -s -platform linux/amd64
|
|
|
|
desktop-windows:
|
|
desc: Build desktop application for Windows
|
|
deps: [build]
|
|
cmds:
|
|
- mkdir -p desktop/frontend_dist
|
|
- 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:
|
|
- mkdir -p desktop/frontend_dist
|
|
- 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:
|
|
- mkdir -p desktop/frontend_dist
|
|
- 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}}
|
|
|
|
setup:
|
|
desc: Setup development environment
|
|
cmds:
|
|
- corepack enable
|
|
|
|
install:
|
|
desc: Install dependencies
|
|
cmds:
|
|
- pnpm install
|
|
|
|
install:ci:
|
|
desc: Install dependencies for CI (frozen lockfile)
|
|
cmds:
|
|
- pnpm install --frozen-lockfile
|
|
|
|
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
|