edge/Makefile

120 lines
3.3 KiB
Makefile
Raw Permalink Normal View History

2023-02-09 12:16:36 +01:00
LINT_ARGS ?= --timeout 5m
GITCHLOG_ARGS ?=
SHELL := /bin/bash
2023-04-06 14:47:37 +02:00
GOTEST_ARGS ?= -short -timeout 60s
2023-02-09 12:16:36 +01:00
ESBUILD_VERSION ?= v0.17.5
GIT_VERSION := $(shell git describe --always)
2023-03-23 19:04:29 +01:00
DATE_VERSION := $(shell date +%Y.%-m.%-d)
FULL_VERSION := v$(DATE_VERSION)-$(GIT_VERSION)$(if $(shell git diff --stat),-dirty,)
APP_PATH ?= misc/client-sdk-testsuite/dist
RUN_APP_ARGS ?=
RUN_STORAGE_SERVER_ARGS ?=
SHELL := bash
2023-02-09 12:16:36 +01:00
build: build-cli build-storage-server build-client-sdk-test-app
2023-02-09 12:16:36 +01:00
2023-04-20 13:57:40 +02:00
watch: tools/modd/bin/modd
tools/modd/bin/modd
2023-02-09 12:16:36 +01:00
.PHONY: test
test: test-go
test-go:
go test -count=1 $(GOTEST_ARGS) ./...
2023-02-09 12:16:36 +01:00
lint:
golangci-lint run --enable-all $(LINT_ARGS)
build-cli: build-sdk
2023-02-09 12:16:36 +01:00
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
2023-04-06 14:47:51 +02:00
build-client-sdk-test-app:
cd misc/client-sdk-testsuite && $(MAKE) dist
2023-02-09 12:16:36 +01:00
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 \
2023-02-09 12:16:36 +01:00
--bundle \
--sourcemap \
--target=es2015 \
2023-02-09 12:16:36 +01:00
--format=iife \
--global-name=Edge \
--define:global=window \
--platform=browser \
--loader:.svg=dataurl \
2023-02-09 12:16:36 +01:00
--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 build
2023-02-09 12:16:36 +01:00
mkdir -p .gitea-release
rm -rf .gitea-release/*
cp bin/cli .gitea-release/edge_cli_amd64
# Create client-sdk-testsuite package
tools/yq/bin/yq -i '.version = "$(FULL_VERSION)"' ./misc/client-sdk-testsuite/dist/manifest.yml
2023-02-09 12:16:36 +01:00
.gitea-release/edge_cli_amd64 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" \
2023-03-23 19:04:29 +01:00
GITEA_RELEASE_VERSION="$(FULL_VERSION)" \
GITEA_RELEASE_NAME="$(FULL_VERSION)" \
2023-02-09 12:16:36 +01:00
GITEA_RELEASE_COMMITISH_TARGET="$(GIT_VERSION)" \
GITEA_RELEASE_IS_DRAFT="false" \
GITEA_RELEASE_IS_PRERELEASE="true" \
GITEA_RELEASE_BODY="" \
2023-04-02 18:01:47 +02:00
GITEA_RELEASE_ATTACHMENTS="$$(find .gitea-release/* -type f)" \
2023-02-09 12:16:36 +01:00
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
2023-04-20 13:57:40 +02:00
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