## ## tank, Import and Store Files for AURA ## Copyright (C) 2017-2020 Christian Pointner <equinox@helsinki.at> ## ## This program is free software: you can redistribute it and/or modify ## it under the terms of the GNU Affero General Public License as ## published by the Free Software Foundation, either version 3 of the ## License, or (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU Affero General Public License for more details. ## ## You should have received a copy of the GNU Affero General Public License ## along with this program. If not, see <https://www.gnu.org/licenses/>. ## GOCMD := go ifdef GOROOT GOCMD = $(GOROOT)/bin/go endif ifndef $(GOPATH) GOPATH=$(shell go env GOPATH) export GOPATH endif SWAG = $(GOPATH)/bin/swag SWAG_ARGS := -d api/v1/,cmd/tank/ -g api.go EXECUTABLE := tank version := $(shell grep -oP 'app\.Version = "\K(.*)(?=")' cmd/tank/main.go) all: build .PHONY: vet format ui build clean distclean init.dev:: go get -u github.com/swaggo/swag/cmd/swag go install github.com/swaggo/swag/cmd/swag@latest curl -sSfL https://github.com/pre-commit/pre-commit/releases/download/v3.7.0/pre-commit-3.7.0.pyz -o pre-commit.pyz && python3 pre-commit.pyz && rm -f pre-commit.pyz vet: $(GOCMD) vet ./... format: $(GOCMD) fmt ./... ui: $(GOCMD) generate ./ui fmt-api-docs: $(SWAG) fmt $(SWAG_ARGS) api-docs: $(SWAG) init $(SWAG_ARGS) --pd -o api/docs # build target actually depends on api-docs # to allow building binary without generating api docs first, we put api/docs/docs.go under version control # see #30 build: ui $(GOCMD) build -o $(EXECUTABLE) ./cmd/tank dev: $(GOCMD) build -o $(EXECUTABLE) -tags=dev ./cmd/tank test-all: gitlab-runner exec docker test-all coverage: gitlab-runner exec docker test-all | grep 'ok.*of statements' release: git tag ${version} git push origin ${version} @echo "Release '${version}' tagged and pushed successfully." clean: rm -f $(EXECUTABLE) distclean: clean rm -f ui/assets_vfsdata.go