140 lines
3.9 KiB
Makefile
140 lines
3.9 KiB
Makefile
LINT_ARGS ?= --timeout 5m
|
|
GITCHLOG_ARGS ?=
|
|
SHELL := /bin/bash
|
|
|
|
GOTEST_ARGS ?= -short -timeout 60s
|
|
|
|
ESBUILD_VERSION ?= v0.17.5
|
|
|
|
APP_PATH ?= misc/client-sdk-testsuite/dist
|
|
RUN_APP_ARGS ?=
|
|
RUN_STORAGE_SERVER_ARGS ?=
|
|
|
|
GORELEASER_VERSION ?= v1.21.2
|
|
GORELEASER_ARGS ?= release --snapshot --clean
|
|
|
|
SHELL := bash
|
|
|
|
|
|
build: build-cli build-storage-server build-client-sdk-test-app
|
|
|
|
watch: tools/modd/bin/modd
|
|
tools/modd/bin/modd
|
|
|
|
.PHONY: test
|
|
test: test-go
|
|
|
|
test-go:
|
|
go test -count=1 $(GOTEST_ARGS) ./...
|
|
|
|
lint:
|
|
golangci-lint run --enable-all $(LINT_ARGS)
|
|
|
|
build-cli: build-sdk
|
|
CGO_ENABLED=0 go build \
|
|
-v \
|
|
-o ./bin/cli \
|
|
./cmd/cli
|
|
|
|
build-storage-server: build-sdk
|
|
CGO_ENABLED=0 go build \
|
|
-v \
|
|
-o ./bin/storage-server \
|
|
./cmd/storage-server
|
|
|
|
build-client-sdk-test-app:
|
|
cd misc/client-sdk-testsuite && $(MAKE) dist
|
|
|
|
install-git-hooks:
|
|
git config core.hooksPath .githooks
|
|
|
|
tools/esbuild/bin/esbuild:
|
|
mkdir -p tools/esbuild/bin
|
|
curl -fsSL https://esbuild.github.io/dl/$(ESBUILD_VERSION) | sh
|
|
mv -f esbuild tools/esbuild/bin/esbuild
|
|
|
|
build-sdk: pkg/sdk/client/dist/client.js
|
|
|
|
.PHONY: pkg/sdk/client/dist/client.js
|
|
pkg/sdk/client/dist/client.js: tools/esbuild/bin/esbuild node_modules
|
|
mkdir -p pkg/sdk/client/dist
|
|
tools/esbuild/bin/esbuild \
|
|
pkg/sdk/client/src/index.ts \
|
|
--minify \
|
|
--bundle \
|
|
--sourcemap \
|
|
--target=es2015 \
|
|
--format=iife \
|
|
--global-name=Edge \
|
|
--define:global=window \
|
|
--platform=browser \
|
|
--loader:.svg=dataurl \
|
|
--outfile=pkg/sdk/client/dist/client.js
|
|
|
|
node_modules:
|
|
npm ci
|
|
|
|
run-app: .env
|
|
( set -o allexport && source .env && set +o allexport && bin/cli app run -p $(APP_PATH) $$RUN_APP_ARGS )
|
|
|
|
run-storage-server: .env
|
|
( set -o allexport && source .env && set +o allexport && bin/storage-server run $$RUN_STORAGE_SERVER_ARGS )
|
|
|
|
.env:
|
|
cp .env.dist .env
|
|
|
|
gitea-release: tools/yq/bin/yq tools/gitea-release/bin/gitea-release.sh goreleaser build
|
|
mkdir -p .gitea-release
|
|
rm -rf .gitea-release/*
|
|
|
|
cp dist/*.deb .gitea-release/
|
|
cp dist/*.tar.gz .gitea-release/
|
|
cp dist/*.apk .gitea-release/
|
|
|
|
# Create client-sdk-testsuite package
|
|
tools/yq/bin/yq -i '.version = "$(MKT_PROJECT_VERSION)"' ./misc/client-sdk-testsuite/dist/manifest.yml
|
|
bin/cli app package -d ./misc/client-sdk-testsuite/dist -o .gitea-release
|
|
|
|
GITEA_RELEASE_PROJECT="edge" \
|
|
GITEA_RELEASE_ORG="arcad" \
|
|
GITEA_RELEASE_BASE_URL="https://forge.cadoles.com" \
|
|
GITEA_RELEASE_VERSION="$(MKT_PROJECT_VERSION)" \
|
|
GITEA_RELEASE_NAME="$(MKT_PROJECT_VERSION)" \
|
|
GITEA_RELEASE_COMMITISH_TARGET="$$(git rev-parse HEAD)" \
|
|
GITEA_RELEASE_IS_DRAFT="false" \
|
|
GITEA_RELEASE_IS_PRERELEASE="true" \
|
|
GITEA_RELEASE_BODY="" \
|
|
GITEA_RELEASE_ATTACHMENTS="$$(find .gitea-release/* -type f)" \
|
|
tools/gitea-release/bin/gitea-release.sh
|
|
|
|
tools/gitea-release/bin/gitea-release.sh:
|
|
mkdir -p tools/gitea-release/bin
|
|
curl --output tools/gitea-release/bin/gitea-release.sh https://forge.cadoles.com/Cadoles/Jenkins/raw/branch/master/resources/com/cadoles/gitea/gitea-release.sh
|
|
chmod +x tools/gitea-release/bin/gitea-release.sh
|
|
|
|
tools/yq/bin/yq:
|
|
mkdir -p tools/yq/bin
|
|
curl -L --output tools/yq/bin/yq https://github.com/mikefarah/yq/releases/download/v4.31.1/yq_linux_amd64
|
|
chmod +x tools/yq/bin/yq
|
|
|
|
tools/modd/bin/modd:
|
|
mkdir -p tools/modd/bin
|
|
GOBIN=$(PWD)/tools/modd/bin go install -mod=readonly github.com/cortesi/modd/cmd/modd@latest
|
|
|
|
.PHONY: goreleaser
|
|
goreleaser: .mktools changelog
|
|
( set -o allexport && source .env && set +o allexport && curl -sfL https://goreleaser.com/static/run | VERSION="$(GORELEASER_VERSION)" GORELEASER_CURRENT_TAG="$(MKT_PROJECT_VERSION)" bash /dev/stdin $(GORELEASER_ARGS) )
|
|
|
|
.PHONY: changelog
|
|
changelog: .mktools
|
|
$(MAKE) MKT_GIT_CHGLOG_ARGS='--next-tag $$(MKT_PROJECT_VERSION) --tag-filter-pattern $$(MKT_PROJECT_VERSION_CHANNEL) --output CHANGELOG.md' mkt-changelog
|
|
|
|
.PHONY: mktools
|
|
mktools:
|
|
rm -rf .mktools
|
|
curl -q https://forge.cadoles.com/Cadoles/mktools/raw/branch/master/install.sh | $(SHELL)
|
|
|
|
.mktools:
|
|
$(MAKE) mktools
|
|
|
|
-include .mktools/*.mk |