github.com/versent/saml2aws@v2.17.0+incompatible/Makefile (about)

     1  NAME=saml2aws
     2  ARCH=$(shell uname -m)
     3  VERSION=2.17.0
     4  ITERATION := 1
     5  
     6  SOURCE_FILES?=$$(go list ./... | grep -v /vendor/)
     7  TEST_PATTERN?=.
     8  TEST_OPTIONS?=
     9  
    10  ci: deps test
    11  
    12  deps:
    13  	go get github.com/buildkite/github-release
    14  	go get -u github.com/golang/dep/cmd/dep
    15  	go get -u github.com/mitchellh/gox
    16  	go get -u github.com/alecthomas/gometalinter
    17  	go get -u github.com/axw/gocov/...
    18  	go get -u golang.org/x/tools/cmd/cover
    19  	gometalinter --install
    20  	dep ensure
    21  
    22  compile:
    23  	@rm -rf build/
    24  	@gox -ldflags "-X main.Version=$(VERSION)" \
    25  	-osarch="darwin/amd64" \
    26  	-osarch="linux/i386" \
    27  	-osarch="linux/amd64" \
    28  	-osarch="windows/amd64" \
    29  	-osarch="windows/i386" \
    30  	-output "build/{{.Dir}}_$(VERSION)_{{.OS}}_{{.Arch}}/$(NAME)" \
    31  	${SOURCE_FILES}
    32  
    33  # Run all the linters
    34  lint:
    35  	gometalinter --vendor ./...
    36  
    37  # gofmt and goimports all go files
    38  fmt:
    39  	find . -name '*.go' -not -wholename './vendor/*' | while read -r file; do gofmt -w -s "$$file"; goimports -w "$$file"; done
    40  
    41  install:
    42  	go install ./cmd/saml2aws
    43  
    44  dist:
    45  	$(eval FILES := $(shell ls build))
    46  	@rm -rf dist && mkdir dist
    47  	@for f in $(FILES); do \
    48  		(cd $(shell pwd)/build/$$f && tar -cvzf ../../dist/$$f.tar.gz *); \
    49  		(cd $(shell pwd)/dist && shasum -a 512 $$f.tar.gz > $$f.sha512); \
    50  		echo $$f; \
    51  	done
    52  
    53  release:
    54  	@github-release "v$(VERSION)" dist/* --commit "$(git rev-parse HEAD)" --github-repository versent/$(NAME)
    55  
    56  test:
    57  	@gocov test $(SOURCE_FILES) | gocov report
    58  
    59  clean:
    60  	@rm -fr ./build
    61  
    62  packages:
    63  	rm -rf package && mkdir package
    64  	rm -rf stage && mkdir -p stage/usr/bin
    65  	cp build/saml2aws_*_linux_amd64/saml2aws stage/usr/bin
    66  	fpm --name $(NAME) -a x86_64 -t rpm -s dir --version $(VERSION) --iteration $(ITERATION) -C stage -p package/$(NAME)-$(VERSION)_$(ITERATION).rpm usr
    67  	fpm --name $(NAME) -a x86_64 -t deb -s dir --version $(VERSION) --iteration $(ITERATION) -C stage -p package/$(NAME)-$(VERSION)_$(ITERATION).deb usr
    68  	shasum -a 512 package/$(NAME)-$(VERSION)_$(ITERATION).rpm > package/$(NAME)-$(VERSION)_$(ITERATION).rpm.sha512
    69  	shasum -a 512 package/$(NAME)-$(VERSION)_$(ITERATION).deb > package/$(NAME)-$(VERSION)_$(ITERATION).deb.sha512
    70  
    71  generate-mocks:
    72  	mockery -dir pkg/prompter --all
    73  
    74  .PHONY: default deps compile lint fmt dist release test clean generate-mocks