github.com/cs3org/reva/v2@v2.27.7/Makefile (about)

     1  SHELL := /bin/bash
     2  BUILD_DATE=`date +%FT%T%z`
     3  GIT_COMMIT ?= `git rev-parse --short HEAD`
     4  GIT_BRANCH=`git rev-parse --symbolic-full-name --abbrev-ref HEAD`
     5  GIT_DIRTY=`git diff-index --quiet HEAD -- || echo "dirty-"`
     6  VERSION	?= `git describe --always`
     7  GO_VERSION ?= `go version | awk '{print $$3}'`
     8  MINIMUM_GO_VERSION=1.16.2
     9  BUILD_FLAGS="-X main.gitCommit=${GIT_COMMIT} -X main.version=${VERSION} -X main.goVersion=${GO_VERSION} -X main.buildDate=${BUILD_DATE}"
    10  CI_BUILD_FLAGS="-w -extldflags "-static" -X main.gitCommit=${GIT_COMMIT} -X main.version=${VERSION} -X main.goVersion=${GO_VERSION} -X main.buildDate=${BUILD_DATE}"
    11  LITMUS_URL_OLD="http://localhost:20080/remote.php/webdav"
    12  LITMUS_URL_NEW="http://localhost:20080/remote.php/dav/files/4c510ada-c86b-4815-8820-42cdf82c3d51"
    13  LITMUS_USERNAME="einstein"
    14  LITMUS_PASSWORD="relativity"
    15  TESTS="basic http copymove props"
    16  
    17  TOOLCHAIN		?= $(CURDIR)/toolchain
    18  GOLANGCI_LINT	?= $(TOOLCHAIN)/golangci-lint
    19  CALENS			?= $(TOOLCHAIN)/calens
    20  GOIMPORTS		?= $(TOOLCHAIN)/goimports
    21  
    22  include .bingo/Variables.mk
    23  
    24  .PHONY: toolchain
    25  toolchain: $(GOLANGCI_LINT) $(CALENS) $(GOIMPORTS)
    26  
    27  .PHONY: toolchain-clean
    28  toolchain-clean:
    29  	rm -rf $(TOOLCHAIN)
    30  
    31  $(GOLANGCI_LINT):
    32  	@mkdir -p $(@D)
    33  	curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | BINDIR=$(@D) sh -s v1.61.0
    34  
    35  .PHONY: check-changelog
    36  lint: $(GOLANGCI_LINT)
    37  	$(GOLANGCI_LINT) run --timeout 300s
    38  
    39  .PHONY: lint-fix
    40  lint-fix: $(GOLANGCI_LINT)
    41  	gofmt -w .
    42  	$(GOLANGCI_LINT) run --fix
    43  
    44  CALENS_DIR := $(shell mktemp -d)
    45  $(CALENS):
    46  	@mkdir -p $(@D)
    47  	git clone --depth 1 --branch v0.2.0 -c advice.detachedHead=false https://github.com/restic/calens.git $(CALENS_DIR)
    48  	cd $(CALENS_DIR) && GOBIN=$(@D) go install
    49  	rm -rf $(CALENS_DIR)
    50  
    51  .PHONY: check-changelog
    52  check-changelog: $(CALENS)
    53  ifndef PR
    54  	$(error PR is not defined)
    55  else
    56  	$(CALENS) | sed -n '/^Changelog for reva unreleased (UNRELEASED)/,/^Details/p' | \
    57  		grep -E '^\*   [[:alpha:]]{3} #$(PR): '
    58  endif
    59  
    60  $(GOIMPORTS):
    61  	@mkdir -p $(@D)
    62  	GOBIN=$(@D) go install golang.org/x/tools/cmd/goimports@v0.3.0
    63  
    64  .PHONY: off
    65  off:
    66  	GOPROXY=off
    67  	echo BUILD_DATE=${BUILD_DATE}
    68  	echo GIT_COMMIT=${GIT_COMMIT}
    69  	echo GIT_DIRTY=${GIT_DIRTY}
    70  	echo VERSION=${VERSION}
    71  	echo GO_VERSION=${GO_VERSION}
    72  
    73  .PHONY: imports
    74  imports: off $(GOIMPORTS)
    75  	$(GOIMPORTS) -w tools pkg internal cmd
    76  
    77  .PHONY: build
    78  build: build-revad build-reva test-go-version
    79  
    80  .PHONY: build-debug
    81  build-debug: build-revad-debug build-reva-debug test-go-version
    82  
    83  .PHONY: build-cephfs
    84  build-cephfs: build-revad-cephfs build-reva
    85  
    86  .PHONY: tidy
    87  tidy:
    88  	go mod tidy
    89  
    90  .PHONY: build-revad
    91  build-revad: imports
    92  	go build -ldflags ${BUILD_FLAGS} -o ./cmd/revad/revad ./cmd/revad
    93  
    94  .PHONY: build-revad-debug
    95  build-revad-debug: imports
    96  	go build -gcflags="all=-N -l" -ldflags ${BUILD_FLAGS} -o ./cmd/revad/revad ./cmd/revad
    97  
    98  .PHONY: build-revad-cephfs
    99  build-revad-cephfs: imports
   100  	go build -ldflags ${BUILD_FLAGS} -tags ceph -o ./cmd/revad/revad ./cmd/revad
   101  
   102  .PHONY: build-reva
   103  build-reva: imports
   104  	go build -ldflags ${BUILD_FLAGS} -o ./cmd/reva/reva ./cmd/reva
   105  
   106  .PHONY: build-reva-debug
   107  build-reva-debug: imports
   108  	go build -gcflags="all=-N -l" -ldflags ${BUILD_FLAGS} -o ./cmd/reva/reva ./cmd/reva
   109  
   110  # to be run in Docker build
   111  .PHONY: build-revad-docker
   112  build-revad-docker: off
   113  	go build -ldflags ${BUILD_FLAGS} -o ./cmd/revad/revad ./cmd/revad
   114  
   115  .PHONY: build-revad-cephfs-docker
   116  build-revad-cephfs-docker: off
   117  	go build -ldflags ${BUILD_FLAGS} -tags ceph -o ./cmd/revad/revad ./cmd/revad
   118  
   119  .PHONY: build-reva-docker
   120  build-reva-docker: off
   121  	go build -ldflags ${BUILD_FLAGS} -o ./cmd/reva/reva ./cmd/reva
   122  
   123  .PHONY: test
   124  test: off
   125  	go test -coverprofile coverage.out -race $$(go list ./... | grep -v /tests/integration)
   126  
   127  .PHONY: test-integration
   128  test-integration: build-ci
   129  	cd tests/integration && go test -race ./...
   130  
   131  .PHONY: litmus-test-old
   132  litmus-test-old: build
   133  	cd tests/oc-integration-tests/local && ../../../cmd/revad/revad -c frontend.toml &
   134  	cd tests/oc-integration-tests/local && ../../../cmd/revad/revad -c gateway.toml &
   135  	cd tests/oc-integration-tests/local && ../../../cmd/revad/revad -c storage-home.toml &
   136  	cd tests/oc-integration-tests/local && ../../../cmd/revad/revad -c storage-users.toml &
   137  	cd tests/oc-integration-tests/local && ../../../cmd/revad/revad -c users.toml &
   138  	docker run --rm --network=host -e LITMUS_URL=$(LITMUS_URL_OLD) -e LITMUS_USERNAME=$(LITMUS_USERNAME) -e LITMUS_PASSWORD=$(LITMUS_PASSWORD) -e TESTS=$(TESTS) owncloud/litmus:latest
   139  	pkill revad
   140  
   141  .PHONY: litmus-test-new
   142  litmus-test-new: build
   143  	cd tests/oc-integration-tests/local && ../../../cmd/revad/revad -c frontend.toml &
   144  	cd tests/oc-integration-tests/local && ../../../cmd/revad/revad -c gateway.toml &
   145  	cd tests/oc-integration-tests/local && ../../../cmd/revad/revad -c storage-home.toml &
   146  	cd tests/oc-integration-tests/local && ../../../cmd/revad/revad -c storage-users.toml &
   147  	cd tests/oc-integration-tests/local && ../../../cmd/revad/revad -c users.toml &
   148  	docker run --rm --network=host -e LITMUS_URL=$(LITMUS_URL_NEW) -e LITMUS_USERNAME=$(LITMUS_USERNAME) -e LITMUS_PASSWORD=$(LITMUS_PASSWORD) -e TESTS=$(TESTS) owncloud/litmus:latest
   149  	pkill revad
   150  
   151  .PHONY: contrib
   152  contrib:
   153  	git shortlog -se | cut -c8- | sort -u | awk '{print "-", $$0}' | grep -v 'users.noreply.github.com' > CONTRIBUTORS.md
   154  
   155  .PHONY: test-go-version
   156  test-go-version:
   157  	@echo -e "$(MINIMUM_GO_VERSION)\n$(shell echo $(GO_VERSION) | sed 's/go//')" | sort -Vc &> /dev/null || echo -e "\n\033[33;5m[WARNING]\033[0m You are not using a supported go version. Please use $(MINIMUM_GO_VERSION) or above.\n"
   158  
   159  .PHONY: build-ci
   160  build-ci: off
   161  	go build -ldflags ${BUILD_FLAGS} -o ./cmd/revad/revad ./cmd/revad
   162  	go build -ldflags ${BUILD_FLAGS} -o ./cmd/reva/reva ./cmd/reva
   163  
   164  .PHONY: gen-doc
   165  gen-doc:
   166  	go run tools/generate-documentation/main.go
   167  
   168  .PHONY: clean
   169  clean: toolchain-clean
   170  	rm -rf dist
   171  
   172  .PHONY: all
   173  all: build test lint gen-doc
   174  
   175  # create local build versions
   176  dist: gen-doc
   177  	go run tools/create-artifacts/main.go -version ${VERSION} -commit ${GIT_COMMIT} -goversion ${GO_VERSION}
   178  
   179  .PHONY: mockery
   180  mockery: $(MOCKERY)
   181  	$(MOCKERY) --boilerplate-file ./.templates/mockery.go.tmpl
   182  
   183  .PHONY: go-generate
   184  go-generate:
   185  	go generate ./...