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: .mktools 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/ cp CHANGELOG.md .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: .env .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