1
0
mirror of https://github.com/getsops/sops.git synced 2026-02-05 12:45:21 +01:00
Files
sops/Makefile
AJ Bahnken f6ce72fbcf Remove vendor directory from repo (#499)
* Remove vendor directory from repo

With #498 being merged and making the switch to Go modules, there does
not seem to be a need to store this directory within the repo anymore.
As well, it will make reviewing dependency updates and viewing the
PR's within Github's UI much more manageable.

This PR also include adding `vendor/` to `.gitignore` and changing the
Makefile so that `make test` will run `make vendor` first.

* Switch to using make install in Dockerfile

* Remove -mod vendor flag from install and functional-tests

* Use proxy.golang.org for go modules within Makefile
2019-07-31 14:25:29 -07:00

103 lines
3.3 KiB
Makefile

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
PROJECT := go.mozilla.org/sops
GO := GO15VENDOREXPERIMENT=1 GO111MODULE=on GOPROXY=https://proxy.golang.org go
GOLINT := golint
all: test vet generate install functional-tests
origin-build: test vet generate install functional-tests-all
install:
$(GO) install go.mozilla.org/sops/cmd/sops
tag: all
git tag -s $(TAGVER) -a -m "$(TAGMSG)"
lint:
$(GOLINT) $(PROJECT)
vendor:
$(GO) mod tidy
$(GO) mod vendor
vet:
$(GO) vet $(PROJECT)
test: vendor
gpg --import pgp/sops_functional_tests_key.asc 2>&1 1>/dev/null || exit 0
./test.sh
showcoverage: test
$(GO) tool cover -html=coverage.out
generate: keyservice/keyservice.pb.go
$(GO) generate
%.pb.go: %.proto
protoc --go_out=plugins=grpc:. $<
functional-tests:
$(GO) build -o functional-tests/sops go.mozilla.org/sops/cmd/sops
cd functional-tests && cargo test
# Ignored tests are ones that require external services (e.g. AWS KMS)
# TODO: Once `--include-ignored` lands in rust stable, switch to that.
functional-tests-all:
$(GO) build -o functional-tests/sops go.mozilla.org/sops/cmd/sops
cd functional-tests && cargo test && cargo test -- --ignored
deb-pkg: install
rm -rf tmppkg
mkdir -p tmppkg/usr/local/bin
cp $$GOPATH/bin/sops tmppkg/usr/local/bin/
fpm -C tmppkg -n sops --license MPL2.0 --vendor mozilla \
--description "Sops is an editor of encrypted files that supports YAML, JSON and BINARY formats and encrypts with AWS KMS and PGP." \
-m "Julien Vehent <jvehent+sops@mozilla.com>" \
--url https://go.mozilla.org/sops \
--architecture x86_64 \
-v "$$(git describe --abbrev=0 --tags)" \
-s dir -t deb .
rpm-pkg: install
rm -rf tmppkg
mkdir -p tmppkg/usr/local/bin
cp $$GOPATH/bin/sops tmppkg/usr/local/bin/
fpm -C tmppkg -n sops --license MPL2.0 --vendor mozilla \
--description "Sops is an editor of encrypted files that supports YAML, JSON and BINARY formats and encrypts with AWS KMS and PGP." \
-m "Julien Vehent <jvehent+sops@mozilla.com>" \
--url https://go.mozilla.org/sops \
--architecture x86_64 \
-v "$$(git describe --abbrev=0 --tags)" \
-s dir -t rpm .
dmg-pkg: install
ifneq ($(OS),darwin)
echo 'you must be on MacOS and set OS=darwin on the make command line to build an OSX package'
else
rm -rf tmppkg
mkdir -p tmppkg/usr/local/bin
cp $$GOPATH/bin/sops tmppkg/usr/local/bin/
fpm -C tmppkg -n sops --license MPL2.0 --vendor mozilla \
--description "Sops is an editor of encrypted files that supports YAML, JSON and BINARY formats and encrypts with AWS KMS and PGP." \
-m "Julien Vehent <jvehent+sops@mozilla.com>" \
--url https://go.mozilla.org/sops \
--architecture x86_64 \
-v "$$(git describe --abbrev=0 --tags)" \
-s dir -t osxpkg \
--osxpkg-identifier-prefix org.mozilla.sops \
-p tmppkg/sops-$$(git describe --abbrev=0 --tags).pkg .
hdiutil makehybrid -hfs -hfs-volume-name "Mozilla Sops" \
-o tmppkg/sops-$$(git describe --abbrev=0 --tags).dmg tmpdmg
endif
download-index:
bash make_download_page.sh
mock:
go get github.com/vektra/mockery/.../
mockery -dir vendor/github.com/aws/aws-sdk-go/service/kms/kmsiface/ -name KMSAPI -output kms/mocks
.PHONY: all test generate clean vendor functional-tests mock