**Related issue:** N/A — follow-up cleanup to #46406 (Add Hangar). ## What & why Fleet Hangar is a macOS-only, GUI-only dev tool built natively, but the Wails v3 project template left behind config for modes/platforms it never uses. None of it was referenced by CI, scripts, or the documented build flow (`dev` / `build` / `package` / `dist` / `sign`). Removed: - **Server-mode + Docker tasks** (`build:server`, `run:server`, `build:docker`, `run:docker`, `setup:docker`) in the root and common Taskfiles. They point at `build/docker/Dockerfile.{server,cross}`, which don't exist, and there is no `server` build tag anywhere in the Go code. - **Docker cross-compilation** in `build/darwin` (`build:docker`, `CROSS_IMAGE`, the `build:universal` `lipo:go` fallback). `build:` and `build:universal` now call the native macOS paths directly. - **iOS tasks** (`ios:device:list`, `ios:run:device`) — no iOS project exists. - **`frontend:vendor:puppertino`** — fetched CSS into `frontend/public/puppertino` and rewrote `index.html`; none of those targets exist and no task called it. - **`.gitignore`** lines for `build/linux` and `build/windows` (neither dir exists). - **`config.yml`** template placeholders (commented `ios` / `fileAssociations` blocks, the `My Other Data` `other` entry). The darwin signing vars (`SIGN_IDENTITY`, `KEYCHAIN_PROFILE`, `ENTITLEMENTS`) are now declared as empty strings instead of comments, so removing `CROSS_IMAGE` doesn't leave `vars:` as a null mapping (which the Taskfile schema rejects). Behavior is unchanged — the `sign:` preconditions still guard on non-empty values. Net: **11 insertions, 280 deletions** across 5 files. No change to the real build flow. ## Testing - Verified with `task build` — exit 0, produces `bin/fleet-hangar` (arm64 Mach-O). - `task --list-all` parses all three Taskfiles with no schema errors and no dangling task references. ## Checklist - [x] QA'd manually (`task build`) No changes file: `tools/hangar` is an internal dev tool, so this is not a user-visible change. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Simplified build configuration by removing Puppertino CSS integration and server/Docker/iOS build tasks. * Updated development task with improved process management to prevent orphaned processes. * Streamlined macOS build process to native-only implementation, removing cross-compilation support. * Cleaned up build configuration files and project ignore patterns. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
188 lines
4.5 KiB
YAML
188 lines
4.5 KiB
YAML
version: '3'
|
|
|
|
tasks:
|
|
go:mod:tidy:
|
|
summary: Runs `go mod tidy`
|
|
internal: true
|
|
cmds:
|
|
- go mod tidy
|
|
|
|
install:frontend:deps:
|
|
summary: Install frontend dependencies
|
|
cmds:
|
|
- task: install:frontend:deps:{{.PACKAGE_MANAGER}}
|
|
|
|
install:frontend:deps:npm:
|
|
dir: frontend
|
|
sources:
|
|
- package.json
|
|
- package-lock.json
|
|
generates:
|
|
- node_modules
|
|
preconditions:
|
|
- sh: npm version
|
|
msg: "Looks like npm isn't installed. Npm is part of the Node installer: https://nodejs.org/en/download/"
|
|
cmds:
|
|
- npm install
|
|
|
|
install:frontend:deps:bun:
|
|
dir: frontend
|
|
sources:
|
|
- package.json
|
|
- bun.lock
|
|
- bun.lockb
|
|
generates:
|
|
- node_modules
|
|
preconditions:
|
|
- sh: bun --version
|
|
msg: "bun not found"
|
|
cmds:
|
|
- bun install
|
|
|
|
install:frontend:deps:pnpm:
|
|
dir: frontend
|
|
sources:
|
|
- package.json
|
|
- pnpm-lock.yaml
|
|
generates:
|
|
- node_modules
|
|
preconditions:
|
|
- sh: pnpm --version
|
|
msg: "pnpm not found"
|
|
cmds:
|
|
- pnpm install
|
|
|
|
install:frontend:deps:yarn:
|
|
dir: frontend
|
|
sources:
|
|
- package.json
|
|
- yarn.lock
|
|
status:
|
|
- test -d node_modules || test -f .pnp.cjs
|
|
preconditions:
|
|
- sh: yarn --version
|
|
msg: "yarn not found"
|
|
cmds:
|
|
- yarn install
|
|
|
|
build:frontend:
|
|
label: build:frontend (DEV={{.DEV}} RUNNER={{.PACKAGE_MANAGER}})
|
|
summary: Build the frontend project
|
|
dir: frontend
|
|
sources:
|
|
- "**/*"
|
|
- exclude: node_modules/**/*
|
|
generates:
|
|
- dist/**/*
|
|
deps:
|
|
- task: install:frontend:deps
|
|
- task: generate:bindings
|
|
vars:
|
|
BUILD_FLAGS:
|
|
ref: .BUILD_FLAGS
|
|
OBFUSCATED:
|
|
ref: .OBFUSCATED
|
|
cmds:
|
|
- task: frontend:run
|
|
vars:
|
|
SCRIPT: '{{if eq .DEV "true"}}build:dev{{else}}build{{end}}'
|
|
env:
|
|
PRODUCTION: '{{if eq .DEV "true"}}false{{else}}true{{end}}'
|
|
|
|
frontend:run:
|
|
summary: Run a frontend script with selected runner
|
|
cmds:
|
|
- task: frontend:run:{{.PACKAGE_MANAGER}}
|
|
vars:
|
|
SCRIPT: "{{.SCRIPT}}"
|
|
vars:
|
|
SCRIPT: "{{.SCRIPT}}"
|
|
|
|
frontend:run:npm:
|
|
dir: frontend
|
|
cmds:
|
|
- npm run {{.SCRIPT}} -q
|
|
vars:
|
|
SCRIPT: "{{.SCRIPT}}"
|
|
|
|
frontend:run:yarn:
|
|
dir: frontend
|
|
cmds:
|
|
- yarn {{.SCRIPT}}
|
|
vars:
|
|
SCRIPT: "{{.SCRIPT}}"
|
|
|
|
frontend:run:pnpm:
|
|
dir: frontend
|
|
cmds:
|
|
- pnpm run {{.SCRIPT}}
|
|
vars:
|
|
SCRIPT: "{{.SCRIPT}}"
|
|
|
|
frontend:run:bun:
|
|
dir: frontend
|
|
cmds:
|
|
- bun run {{.SCRIPT}}
|
|
vars:
|
|
SCRIPT: "{{.SCRIPT}}"
|
|
|
|
generate:bindings:
|
|
label: generate:bindings (BUILD_FLAGS={{.BUILD_FLAGS}})
|
|
summary: Generates bindings for the frontend
|
|
deps:
|
|
- task: go:mod:tidy
|
|
sources:
|
|
- "**/*.[jt]s"
|
|
- exclude: frontend/**/*
|
|
- frontend/bindings/**/* # Rerun when switching between dev/production mode causes changes in output
|
|
- "**/*.go"
|
|
- go.mod
|
|
- go.sum
|
|
generates:
|
|
- frontend/bindings/**/*
|
|
cmds:
|
|
- wails3 generate bindings -f '{{.BUILD_FLAGS}}' -clean=true{{if eq .OBFUSCATED "true"}} -obfuscated{{end}} -ts
|
|
|
|
generate:icons:
|
|
summary: Generates the Mac `.icns` from appicon.png (the Fleet Hangar island). macOS-only (Hangar is macOS-only; the Windows .ico target was removed with the windows build dir). We deliberately do NOT use the Icon Composer (`.icon`/`Assets.car`) path — the island is a full-bleed illustration, not a glyph that suits the layered gradient treatment, so a plain `.icns` (as the Rust app shipped) is correct.
|
|
dir: build
|
|
sources:
|
|
- "appicon.png"
|
|
generates:
|
|
- "darwin/icons.icns"
|
|
cmds:
|
|
- wails3 generate icons -input appicon.png -macfilename darwin/icons.icns
|
|
|
|
dev:frontend:
|
|
summary: Runs the frontend in development mode
|
|
deps:
|
|
- task: install:frontend:deps
|
|
cmds:
|
|
- task: frontend:dev:{{.PACKAGE_MANAGER}}
|
|
|
|
frontend:dev:npm:
|
|
dir: frontend
|
|
cmds:
|
|
- npm run dev -- --port {{.VITE_PORT}} --strictPort
|
|
|
|
frontend:dev:yarn:
|
|
dir: frontend
|
|
cmds:
|
|
- yarn dev --port {{.VITE_PORT}} --strictPort
|
|
|
|
frontend:dev:pnpm:
|
|
dir: frontend
|
|
cmds:
|
|
- pnpm dev --port {{.VITE_PORT}} --strictPort
|
|
|
|
frontend:dev:bun:
|
|
dir: frontend
|
|
cmds:
|
|
- bun run dev --port {{.VITE_PORT}} --strictPort
|
|
|
|
update:build-assets:
|
|
summary: Updates the build assets
|
|
dir: build
|
|
cmds:
|
|
- wails3 update build-assets -name "{{.APP_NAME}}" -binaryname "{{.APP_NAME}}" -config config.yml -dir .
|