support go task
This commit is contained in:
parent
646fff775c
commit
155cc67724
3 changed files with 233 additions and 0 deletions
180
Taskfile.yaml
Normal file
180
Taskfile.yaml
Normal file
|
@ -0,0 +1,180 @@
|
|||
version: "3"
|
||||
|
||||
env:
|
||||
GITREV:
|
||||
sh: git describe | cut -c 2-
|
||||
BINARY_NAME: writefreely
|
||||
IMAGE_NAME: writeas/writefreely
|
||||
BUILDPATH: build/{{.BINARY_NAME}}
|
||||
LDFLAGS: -ldflags="-s -w -X 'github.com/writefreely/writefreely.softwareVer={{.GITREV}}' -extldflags '-static'"
|
||||
GOTEST: go test {{.LDFLAGS}}
|
||||
GOBUILD: go build {{.LDFLAGS}}
|
||||
|
||||
includes:
|
||||
less:
|
||||
taskfile: ./less
|
||||
dir: ./less
|
||||
internal: true
|
||||
prose:
|
||||
taskfile: ./prose
|
||||
dir: ./prose
|
||||
internal: true
|
||||
|
||||
tasks:
|
||||
ci:
|
||||
- task: deps
|
||||
- cd cmd/writefreely; {{.GOBUILD}} -v
|
||||
|
||||
build:
|
||||
aliases: [all]
|
||||
cmds:
|
||||
- task: deps
|
||||
- cd cmd/writefreely; {{.GOBUILD}} -v -tags='netgo sqlite'
|
||||
|
||||
build-no-sqlite:
|
||||
- task: deps-no-sqlite
|
||||
- cd cmd/writefreely; {{.GOBUILD}} -v -tags='netgo' -o {{.BINARY_NAME}}
|
||||
|
||||
build-linux:
|
||||
- task: deps
|
||||
- |
|
||||
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
||||
go install src.techknowlogick.com/xgo@latest; \
|
||||
fi
|
||||
xgo --targets=linux/amd64, -dest build/ {{.LDFLAGS}} -tags='netgo sqlite' -go go-1.21.x -out writefreely -pkg ./cmd/writefreely .
|
||||
|
||||
build-windows:
|
||||
- task: deps
|
||||
- |
|
||||
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
||||
go install src.techknowlogick.com/xgo@latest; \
|
||||
fi
|
||||
xgo --targets=windows/amd64, -dest build/ {{.LDFLAGS}} -tags='netgo sqlite' -go go-1.21.x -out writefreely -pkg ./cmd/writefreely .
|
||||
|
||||
build-darwin:
|
||||
- task: deps
|
||||
- |
|
||||
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
||||
go install src.techknowlogick.com/xgo@latest; \
|
||||
fi
|
||||
xgo --targets=darwin/amd64, -dest build/ {{.LDFLAG}} -tags='netgo sqlite' -go go-1.21.x -out writefreely -pkg ./cmd/writefreely .
|
||||
|
||||
build-arm6:
|
||||
- task: deps
|
||||
- |
|
||||
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
||||
go install src.techknowlogick.com/xgo@latest; \
|
||||
fi
|
||||
xgo --targets=linux/arm-6, -dest build/ {{.LDFLAGS}} -tags='netgo sqlite' -go go-1.21.x -out writefreely -pkg ./cmd/writefreely .
|
||||
|
||||
build-arm7:
|
||||
- task: deps
|
||||
- |
|
||||
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
||||
go install src.techknowlogick.com/xgo@latest; \
|
||||
fi
|
||||
xgo --targets=linux/arm-7, -dest build/ {{.LDFLAGS}} -tags='netgo sqlite' -go go-1.21.x -out writefreely -pkg ./cmd/writefreely .
|
||||
|
||||
build-arm64:
|
||||
- task: deps
|
||||
- |
|
||||
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
||||
go install src.techknowlogick.com/xgo@latest; \
|
||||
fi
|
||||
xgo --targets=linux/arm64, -dest build/ {{.LDFLAGS}} -tags='netgo sqlite' -go go-1.21.x -out writefreely -pkg ./cmd/writefreely .
|
||||
|
||||
build-docker:
|
||||
cmds:
|
||||
- docker build -t {{.IMAGE_NAME}}:latest -t {{.IMAGE_NAME}}:{{.GITREV}} .
|
||||
requires:
|
||||
vars:
|
||||
- IMAGE_NAME
|
||||
- GITREV
|
||||
|
||||
release:
|
||||
- task: clean
|
||||
- task: ui
|
||||
- mkdir -p {{.BUILDPATH}}
|
||||
- cp -r templates {{.BUILDPATH}}
|
||||
- cp -r pages {{.BUILDPATH}}
|
||||
- cp -r static {{.BUILDPATH}}
|
||||
- rm -r {{.BUILDPATH}}/static/local
|
||||
- scripts/invalidate-css.sh {{.BUILDPATH}}
|
||||
- mkdir {{.BUILDPATH}}/keys
|
||||
- task: build-linux
|
||||
- mv build/{{.BINARY_NAME}}-linux-amd64 {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- tar -cvzf {{.BINARY_NAME}}_{{.GITREV}}_linux_amd64.tar.gz -C build {{.BINARY_NAME}}
|
||||
- rm {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- task: build-arm6
|
||||
- mv build/{{.BINARY_NAME}}-linux-arm-6 {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- tar -cvzf {{.BINARY_NAME}}_{{.GITREV}}_linux_arm6.tar.gz -C build {{.BINARY_NAME}}
|
||||
- rm {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- task: build-arm7
|
||||
- mv build/{{.BINARY_NAME}}-linux-arm-7 {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- tar -cvzf {{.BINARY_NAME}}_{{.GITREV}}_linux_arm7.tar.gz -C build {{.BINARY_NAME}}
|
||||
- rm {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- task: build-arm64
|
||||
- mv build/{{.BINARY_NAME}}-linux-arm64 {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- tar -cvzf {{.BINARY_NAME}}_{{.GITREV}}_linux_arm64.tar.gz -C build {{.BINARY_NAME}}
|
||||
- rm {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- task: build-darwin
|
||||
- mv build/{{.BINARY_NAME}}-darwin-10.12-amd64 {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- tar -cvzf {{.BINARY_NAME}}_{{.GITREV}}_macos_amd64.tar.gz -C build {{.BINARY_NAME}}
|
||||
- rm {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- task: build-windows
|
||||
- mv build/{{.BINARY_NAME}}-windows-4.0-amd64.exe {{.BUILDPATH}}/{{.BINARY_NAME}}.exe
|
||||
- tar -cvzf {{.BINARY_NAME}}_{{.GITREV}}_windows_amd64.zip -C build {{.BINARY_NAME}}
|
||||
- rm {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- task: build-docker
|
||||
- task: release-docker
|
||||
|
||||
release-linux: # This assumes you're on linux/amd64
|
||||
desc: "build release for Linux"
|
||||
cmds:
|
||||
- task: clean
|
||||
- task: ui
|
||||
- mkdir -p {{.BUILDPATH}}
|
||||
- cp -r templates {{.BUILDPATH}}
|
||||
- cp -r pages {{.BUILDPATH}}
|
||||
- cp -r static {{.BUILDPATH}}
|
||||
- mkdir {{.BUILDPATH}}/keys
|
||||
- task: build-no-sqlite
|
||||
- mv cmd/writefreely/{{.BINARY_NAME}} {{.BUILDPATH}}/{{.BINARY_NAME}}
|
||||
- tar -cvzf {{.BINARY_NAME}}_{{.GITREV}}_linux_amd64.tar.gz -C build {{.BINARY_NAME}}
|
||||
|
||||
release-docker:
|
||||
cmds:
|
||||
- docker push {{.IMAGE_NAME}}
|
||||
requires:
|
||||
vars: ["IMAGE_NAME"]
|
||||
|
||||
test:
|
||||
- "{{.GOTEST}} -v ./..."
|
||||
|
||||
run:
|
||||
- go install {{.LDFLAGS}} -tags='netgo sqlite' ./...
|
||||
- "{{.BINARY_NAME}} --debug"
|
||||
|
||||
deps:
|
||||
- go get -tags='sqlite' -d -v ./...
|
||||
|
||||
deps-no-sqlite:
|
||||
- go get -d -v ./...
|
||||
|
||||
install:
|
||||
- task: build
|
||||
- cmd/writefreely/{{.BINARY_NAME}} --config
|
||||
- cmd/writefreely/{{.BINARY_NAME}} --gen-keys
|
||||
- cmd/writefreely/{{.BINARY_NAME}} --init-db
|
||||
- task: less:install
|
||||
|
||||
clean:
|
||||
cmds:
|
||||
- rm -rf build
|
||||
- rm -rf tmp
|
||||
- task: less:clean
|
||||
|
||||
ui:
|
||||
cmds:
|
||||
- task: less:all
|
||||
- task: prose:all
|
47
less/Taskfile.yaml
Normal file
47
less/Taskfile.yaml
Normal file
|
@ -0,0 +1,47 @@
|
|||
version: "3"
|
||||
|
||||
env:
|
||||
CSSDIR: ../static/css/
|
||||
|
||||
tasks:
|
||||
check-lessc:
|
||||
internal: true
|
||||
cmds:
|
||||
- |
|
||||
command -v lessc >/dev/null 2>&1 || {
|
||||
echo "lessc is not installed, please run: task install";
|
||||
exit 1;
|
||||
}
|
||||
silent: true
|
||||
|
||||
install:
|
||||
desc: "Install LESS and compile all LESS files"
|
||||
cmds:
|
||||
- |
|
||||
if ! command -v lessc >/dev/null 2>&1; then
|
||||
echo "Installing LESS..."
|
||||
npm install -g less@3.5.3
|
||||
npm install -g less-plugin-clean-css
|
||||
else
|
||||
echo "LESS is already installed"
|
||||
fi
|
||||
- task: all
|
||||
silent: true
|
||||
|
||||
all:
|
||||
desc: "Compile all LESS files"
|
||||
deps: [check-lessc]
|
||||
cmds:
|
||||
- lessc app.less --clean-css="--s1 --advanced" "{{.CSSDIR}}write.css"
|
||||
- lessc fonts.less --clean-css="--s1 --advanced" "{{.CSSDIR}}fonts.css"
|
||||
- lessc icons.less --clean-css="--s1 --advanced" "{{.CSSDIR}}icons.css"
|
||||
- lessc prose.less --clean-css="--s1 --advanced" "{{.CSSDIR}}prose.css"
|
||||
requires:
|
||||
vars:
|
||||
- CSSDIR
|
||||
|
||||
clean:
|
||||
cmds:
|
||||
- rm -f font.css
|
||||
- rm -f fonts.css
|
||||
- rm -f icons.css
|
6
prose/Taskfile.yaml
Normal file
6
prose/Taskfile.yaml
Normal file
|
@ -0,0 +1,6 @@
|
|||
version: "3"
|
||||
|
||||
tasks:
|
||||
all:
|
||||
- npm install
|
||||
- npm run-script build
|
Loading…
Add table
Reference in a new issue