continuous-integration/drone/push Build encountered an error
- html/embed.go embeds html/ (pages, css, img, js, video); src/assets.go
serves it, with os.DirFS("html") under -dev. Static assets get an ETag
and Cache-Control: no-cache; HTML pages are still templated (only the
login error message is substituted now).
- Delete the generated src/webUI.go (783 KB base64), src/html-build.go and
cmd/webui-gen; Dockerfile no longer runs a generator.
- Language layer removed: 254 {{.x}} placeholders inlined as English
strings in ts/*.ts and the two auth pages; html/lang/en.json, the
LanguageUI struct and the 'language' setting are gone.
- ts/tsconfig.json + package.json pin typescript 5.9.3; the seven sources
compile (ES2020, global scripts) into one committed html/js/app.js.
Ten unreferenced legacy scripts under html/js/ deleted; all pages load
js/app.js.
- Fix the six type errors that blocked a clean compile, including a real
bug: a missing semicolon in the search shortcut handler made the code
call the result of preventDefault(), so the shortcut threw instead of
focusing the search box.
- /healthz liveness endpoint; Dockerfile healthcheck and README use it.
- Drone: go vet, and a webui-check step that rebuilds the bundle and fails
if the committed app.js is stale.
- README-DEV.md documents build, UI toolchain, -dev, versioning, CI.
105 lines
3.1 KiB
YAML
105 lines
3.1 KiB
YAML
kind: pipeline
|
|
type: docker
|
|
name: default
|
|
|
|
steps:
|
|
- name: go-test
|
|
image: cache.coadcorp.com/library/golang:1.27.1
|
|
commands:
|
|
- go mod download
|
|
- go vet ./...
|
|
- go test ./...
|
|
|
|
- name: webui-check
|
|
image: cache.coadcorp.com/library/node:22-alpine
|
|
commands:
|
|
- cp html/js/app.js /tmp/app.js.committed
|
|
- npm ci --no-audit --no-fund
|
|
- npm run build
|
|
- cmp /tmp/app.js.committed html/js/app.js || (echo "html/js/app.js is stale - run 'npm run build' and commit the result" && exit 1)
|
|
|
|
- name: go-build
|
|
image: cache.coadcorp.com/library/golang:1.27.1
|
|
commands:
|
|
- XTEVE_VERSION="$(grep -m1 '^#### ' changelog-beta.md | cut -d' ' -f2 | sed 's/-beta$//')"
|
|
- test -n "$XTEVE_VERSION" || (echo "Could not parse version from changelog-beta.md" && exit 1)
|
|
- SRC_VERSION="$(grep -m1 '^var Version = ' xteve.go | cut -d'"' -f2)"
|
|
- test "$SRC_VERSION" = "$XTEVE_VERSION" || (echo "Version drift: xteve.go has $SRC_VERSION, changelog-beta.md has $XTEVE_VERSION" && exit 1)
|
|
- echo "Building xTeVe version $XTEVE_VERSION from changelog-beta.md"
|
|
- go build -v -ldflags "-X main.Version=$XTEVE_VERSION" ./...
|
|
|
|
- name: dockerfile-lint
|
|
image: cache.coadcorp.com/hadolint/hadolint:v2.12.0-alpine
|
|
commands:
|
|
- hadolint -t error Dockerfile
|
|
|
|
- name: compose-validate
|
|
image: cache.coadcorp.com/library/docker:27-cli
|
|
commands:
|
|
- apk add --no-cache docker-cli-compose
|
|
- docker compose -f docker-compose.yml config -q
|
|
- docker compose -f docker-compose.host.yml config -q
|
|
|
|
- name: docker-build-validate
|
|
image: gcr.io/kaniko-project/executor:v1.23.2-debug
|
|
commands:
|
|
- /kaniko/executor --context "${DRONE_WORKSPACE}" --dockerfile "${DRONE_WORKSPACE}/Dockerfile" --no-push --destination xteve:validate --build-arg TARGETOS=linux --build-arg TARGETARCH=amd64 --build-arg XTEVE_UID=1000 --build-arg XTEVE_GID=1000
|
|
when:
|
|
event:
|
|
- pull_request
|
|
|
|
- name: docker-publish
|
|
image: plugins/docker
|
|
environment:
|
|
XTEVE_UID: "1000"
|
|
XTEVE_GID: "1000"
|
|
settings:
|
|
registry: registry.coadcorp.com
|
|
repo: registry.coadcorp.com/nathan/xteve
|
|
dockerfile: Dockerfile
|
|
username: nathan
|
|
password:
|
|
from_secret: registry_password
|
|
tags:
|
|
- latest
|
|
- ${DRONE_COMMIT_SHA}
|
|
build_args:
|
|
- TARGETOS=linux
|
|
- TARGETARCH=amd64
|
|
build_args_from_env:
|
|
- XTEVE_UID
|
|
- XTEVE_GID
|
|
when:
|
|
event:
|
|
- push
|
|
branch:
|
|
- master
|
|
|
|
- name: docker-publish-branch
|
|
image: plugins/docker
|
|
environment:
|
|
XTEVE_UID: "1000"
|
|
XTEVE_GID: "1000"
|
|
settings:
|
|
registry: registry.coadcorp.com
|
|
repo: registry.coadcorp.com/nathan/xteve
|
|
dockerfile: Dockerfile
|
|
username: nathan
|
|
password:
|
|
from_secret: registry_password
|
|
tags:
|
|
- ${DRONE_BRANCH}
|
|
- ${DRONE_COMMIT_SHA}
|
|
build_args:
|
|
- TARGETOS=linux
|
|
- TARGETARCH=amd64
|
|
build_args_from_env:
|
|
- XTEVE_UID
|
|
- XTEVE_GID
|
|
when:
|
|
event:
|
|
- push
|
|
branch:
|
|
exclude:
|
|
- master
|