Skip to content

Commit

Permalink
Tidy up manual build process
Browse files Browse the repository at this point in the history
  • Loading branch information
dstotijn committed Nov 1, 2020
1 parent 81fbfe4 commit f6789fa
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 28 deletions.
1 change: 0 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
**/rice-box.go
/admin/.env
/admin/.next
/admin/dist
Expand Down
5 changes: 0 additions & 5 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,6 @@ env:
- GO111MODULE=on
- CGO_ENABLED=1

before:
hooks:
- make clean
- make embed

builds:
- id: hetty-darwin-amd64
main: ./cmd/hetty
Expand Down
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ COPY go.mod go.sum ./
RUN go mod download
COPY cmd ./cmd
COPY pkg ./pkg
RUN rm -f cmd/hetty/rice-box.go
RUN go build ./cmd/hetty

FROM node:${NODE_VERSION}-alpine AS node-builder
Expand Down
29 changes: 9 additions & 20 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,45 +1,34 @@
PACKAGE_NAME := github.com/dstotijn/hetty
GOLANG_CROSS_VERSION ?= v1.15.2

setup:
go mod download
go generate ./...
.PHONY: setup

.PHONY: embed
embed:
go install github.com/GeertJohan/go.rice/rice
NEXT_TELEMETRY_DISABLED=1 cd admin && yarn install && yarn run export
cd cmd/hetty && rice embed-go
.PHONY: embed

build: embed
env CGO_ENABLED=1 go build ./cmd/hetty
.PHONY: build
build: embed
CGO_ENABLED=1 go build ./cmd/hetty

clean:
rm -rf cmd/hetty/rice-box.go
.PHONY: clean

release-dry-run:
.PHONY: release-dry-run
release-dry-run: embed
@docker run \
--rm \
-v `pwd`:/go/src/$(PACKAGE_NAME) \
-v `pwd`/admin/dist:/go/src/$(PACKAGE_NAME)/admin/dist \
-w /go/src/$(PACKAGE_NAME) \
troian/golang-cross:${GOLANG_CROSS_VERSION} \
--rm-dist --skip-validate --skip-publish
.PHONY: release-dry-run

release:
.PHONY: release
release: embed
@if [ ! -f ".release-env" ]; then \
echo "\033[91mFile \`.release-env\` is missing.\033[0m";\
exit 1;\
fi
@docker run \
--rm \
-v `pwd`:/go/src/$(PACKAGE_NAME) \
-v `pwd`/admin/dist:/go/src/$(PACKAGE_NAME)/admin/dist \
-w /go/src/$(PACKAGE_NAME) \
--env-file .release-env \
troian/golang-cross:${GOLANG_CROSS_VERSION} \
release --rm-dist
.PHONY: release
release --rm-dist
16 changes: 14 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,23 @@ and web based admin interface.

### Build from source

#### Prerequisites

- [Go](https://golang.org/)
- [Yarn](https://yarnpkg.com/)
- [go.rice](https://github.com/GeertJohan/go.rice)

Hetty depends on SQLite (via [mattn/go-sqlite3](https://github.com/mattn/go-sqlite3))
and needs `cgo` to compile.
and needs `cgo` to compile. Additionally, the static resources for the admin interface
(Next.js) need to be generated via [Yarn](https://yarnpkg.com/) and embedded in
a `.go` file with [go.rice](https://github.com/GeertJohan/go.rice) beforehand.

Clone the repository and use the `build` make target to create a binary:

```
$ GO111MODULE=auto CGO_ENABLED=1 go get -u github.com/dstotijn/hetty/cmd/hetty
$ git clone [email protected]:dstotijn/hetty.git
$ cd hetty
$ make build
```

### Docker
Expand Down

0 comments on commit f6789fa

Please sign in to comment.