From 15c36e892f83e46383ab639d8e375526c6aabb7e Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Thu, 7 Sep 2023 13:12:02 +0200 Subject: [PATCH] Add a build tag: ui, to permit using happydomain as a module --- .drone.yml | 28 ++++++++++++++-------------- README.md | 5 ++--- ui/assets-noui.go | 13 +++++++++++++ ui/assets.go | 2 ++ 4 files changed, 31 insertions(+), 17 deletions(-) create mode 100644 ui/assets-noui.go diff --git a/.drone.yml b/.drone.yml index eaef605..4bd16c1 100644 --- a/.drone.yml +++ b/.drone.yml @@ -60,7 +60,7 @@ steps: - sed -i '/npm run build/d' ui/assets.go - go install github.com/swaggo/swag/cmd/swag@latest - go generate -v ./... - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} - ln happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} happydomain environment: CGO_ENABLED: 0 @@ -76,7 +76,7 @@ steps: - sed -i '/npm run build/d' ui/assets.go - go install github.com/swaggo/swag/cmd/swag@latest - go generate -v ./... - - go build -v -tags netgo,swagger -ldflags '-w -X main.Version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} + - go build -v -tags netgo,swagger,ui -ldflags '-w -X main.Version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} - ln happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} happydomain environment: CGO_ENABLED: 0 @@ -131,7 +131,7 @@ steps: image: golang:1-alpine commands: - apk add --no-cache git - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-darwin-${DRONE_STAGE_ARCH} + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-darwin-${DRONE_STAGE_ARCH} environment: CGO_ENABLED: 0 GOOS: darwin @@ -145,7 +145,7 @@ steps: image: golang:1-alpine commands: - apk add --no-cache git - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_TAG##v}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-darwin-${DRONE_STAGE_ARCH} + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_TAG##v}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-darwin-${DRONE_STAGE_ARCH} environment: CGO_ENABLED: 0 GOOS: darwin @@ -231,7 +231,7 @@ steps: - sed -i '/npm run build/d' ui/assets.go - go install github.com/swaggo/swag/cmd/swag@latest - go generate -v ./... - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} - ln happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} happydomain environment: CGO_ENABLED: 0 @@ -247,7 +247,7 @@ steps: - sed -i '/npm run build/d' ui/assets.go - go install github.com/swaggo/swag/cmd/swag@latest - go generate -v ./... - - go build -v -tags netgo,swagger -ldflags '-w -X main.Version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} + - go build -v -tags netgo,swagger,ui -ldflags '-w -X main.Version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} - ln happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} happydomain environment: CGO_ENABLED: 0 @@ -294,7 +294,7 @@ steps: image: golang:1-alpine commands: - apk add --no-cache git - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-darwin-${DRONE_STAGE_ARCH} + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-darwin-${DRONE_STAGE_ARCH} environment: CGO_ENABLED: 0 GOOS: darwin @@ -308,7 +308,7 @@ steps: image: golang:1-alpine commands: - apk add --no-cache git - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_TAG##v}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-darwin-${DRONE_STAGE_ARCH} + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_TAG##v}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-darwin-${DRONE_STAGE_ARCH} environment: CGO_ENABLED: 0 GOOS: darwin @@ -394,7 +394,7 @@ steps: - sed -i '/npm run build/d' ui/assets.go - go install github.com/swaggo/swag/cmd/swag@latest - go generate -v ./... - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}el + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}el environment: CGO_ENABLED: 0 GOARM: 5 @@ -413,7 +413,7 @@ steps: - sed -i '/npm run build/d' ui/assets.go - go install github.com/swaggo/swag/cmd/swag@latest - go generate -v ./... - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_TAG##v}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}el + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_TAG##v}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}el environment: CGO_ENABLED: 0 GOARM: 5 @@ -460,7 +460,7 @@ steps: image: golang:1-alpine commands: - apk --no-cache add build-base git - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}hf + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}hf environment: CGO_ENABLED: 0 GOARM: 6 @@ -476,7 +476,7 @@ steps: image: golang:1-alpine commands: - apk --no-cache add build-base git - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_TAG##v}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}hf + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_TAG##v}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}hf environment: CGO_ENABLED: 0 GOARM: 6 @@ -526,7 +526,7 @@ steps: - "[ -d docs ] || sed -i '/npm run build/d' ui/assets.go" - "[ -d docs ] || go install github.com/swaggo/swag/cmd/swag@latest" - "[ -d docs ] || go generate -v ./..." - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}v7 + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_BRANCH}-${DRONE_COMMIT}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}v7 - ln happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}v7 happydomain environment: CGO_ENABLED: 0 @@ -540,7 +540,7 @@ steps: image: golang:1-alpine commands: - apk --no-cache add build-base git - - go build -v -tags netgo,swagger -ldflags '-w -X "main.Version=${DRONE_TAG##v}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}v7 + - go build -v -tags netgo,swagger,ui -ldflags '-w -X "main.Version=${DRONE_TAG##v}" -X main.build=${DRONE_BUILD_NUMBER}' -o happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}v7 - ln happydomain-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}v7 happydomain environment: CGO_ENABLED: 0 diff --git a/README.md b/README.md index 429d87c..8196b44 100644 --- a/README.md +++ b/README.md @@ -53,14 +53,13 @@ pushd ui; npm install; popd 2. Then, generate assets files used by Go code: ``` -go generate git.happydomain.org/happydomain/ui -go generate git.happydomain.org/happydomain +go generate ./... ``` 3. Finaly, build the Go code: ``` -go build -v +go build -tags swagger,ui ``` This last command will create a binary `happydomain` you can use standalone. diff --git a/ui/assets-noui.go b/ui/assets-noui.go new file mode 100644 index 0000000..c8943de --- /dev/null +++ b/ui/assets-noui.go @@ -0,0 +1,13 @@ +//go:build !ui + +package ui + +import ( + "net/http" +) + +var Assets http.FileSystem + +func GetEmbedFS() http.FileSystem { + return Assets +} diff --git a/ui/assets.go b/ui/assets.go index 6fe2c39..1986be0 100644 --- a/ui/assets.go +++ b/ui/assets.go @@ -1,3 +1,5 @@ +//go:build ui + package ui import (