2019-09-26 16:51:09 +01:00
GO_VERSION ?= 1.13.1
2018-08-31 16:21:44 +01:00
GOOS ?= linux
GOARCH ?= amd64
2018-07-25 22:47:02 +01:00
COMPOSE_PROJECT_NAME := ${ TAG } -$( shell git rev-parse --abbrev-ref HEAD)
2019-05-21 15:36:09 +01:00
BRANCH_NAME ?= $( shell git rev-parse --abbrev-ref HEAD | sed "s!/!-!g" )
i f e q ( $ { B R A N C H _ N A M E } , m a s t e r )
2019-03-07 18:58:55 +00:00
TAG := $( shell git rev-parse --short HEAD) -go${ GO_VERSION }
TRACKED_BRANCH := true
LATEST_TAG := latest
2018-08-22 03:54:56 +01:00
e l s e
2019-05-21 15:36:09 +01:00
TAG := $( shell git rev-parse --short HEAD) -${ BRANCH_NAME } -go${ GO_VERSION }
i f n e q ( , $( findstring release -,$ ( BRANCH_NAME ) ) )
2019-03-07 18:58:55 +00:00
TRACKED_BRANCH := true
2019-05-21 15:36:09 +01:00
LATEST_TAG := ${ BRANCH_NAME } -latest
2019-03-07 18:58:55 +00:00
e n d i f
2018-08-22 03:54:56 +01:00
e n d i f
2018-08-31 16:21:44 +01:00
CUSTOMTAG ?=
2018-07-25 22:47:02 +01:00
2018-08-31 16:21:44 +01:00
FILEEXT :=
i f e q ( $ { G O O S } , w i n d o w s )
FILEEXT := .exe
e n d i f
DOCKER_BUILD := docker build \
2019-04-08 21:01:20 +01:00
--build-arg TAG = ${ TAG }
2018-06-21 20:36:39 +01:00
2018-10-16 19:47:43 +01:00
.DEFAULT_GOAL := help
.PHONY : help
help :
@awk ' BEGIN { \
FS = ":.*##" ; \
printf "\nUsage:\n make \033[36m<target>\033[0m\n" \
} \
/^[ a-zA-Z_-] +:.*?##/ { \
printf " \033[36m%-17s\033[0m %s\n" , $$ 1, $$ 2 \
} \
/^##@/ { \
printf "\n\033[1m%s\033[0m\n" , substr( $$ 0, 5) \
} ' $( MAKEFILE_LIST)
##@ Dependencies
.PHONY : build -dev -deps
build-dev-deps : ## Install dependencies for builds
go get github.com/mattn/goveralls
go get golang.org/x/tools/cover
go get github.com/modocache/gover
2019-10-08 09:52:19 +01:00
go get github.com/go-bindata/go-bindata/go-bindata
2019-09-25 17:35:56 +01:00
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b ${ GOPATH } /bin v1.19.1
2018-10-16 19:47:43 +01:00
.PHONY : lint
lint : check -copyrights ## Analyze and find programs in source code
2018-04-23 17:05:52 +01:00
@echo " Running ${ @ } "
2018-09-11 14:13:25 +01:00
@golangci-lint run
2018-04-12 14:50:22 +01:00
2018-10-16 19:47:43 +01:00
.PHONY : check -copyrights
check-copyrights : ## Check source files for copyright headers
2018-04-23 17:05:52 +01:00
@echo " Running ${ @ } "
2018-11-15 12:47:52 +00:00
@go run ./scripts/check-copyright.go
2018-04-23 17:05:52 +01:00
2018-10-16 19:47:43 +01:00
.PHONY : goimports -fix
goimports-fix : ## Applies goimports to every go file (excluding vendored files)
2018-12-07 13:44:25 +00:00
goimports -w -local storj.io $$ ( find . -type f -name '*.go' -not -path "*/vendor/*" )
2018-06-13 19:22:32 +01:00
2018-12-13 20:01:43 +00:00
.PHONY : goimports -st
goimports-st : ## Applies goimports to every go file in `git status` (ignores untracked files)
2019-01-22 12:35:48 +00:00
@git status --porcelain -uno| grep .go| grep -v "^D" | sed -E 's,\w+\s+(.+->\s+)?,,g' | xargs -I { } goimports -w -local storj.io { }
2018-12-13 20:01:43 +00:00
2018-10-16 19:47:43 +01:00
.PHONY : proto
proto : ## Rebuild protobuf files
2018-04-12 14:50:22 +01:00
@echo " Running ${ @ } "
2018-11-30 15:02:01 +00:00
go run scripts/protobuf.go install
go run scripts/protobuf.go generate
2018-04-17 18:29:15 +01:00
2019-06-27 19:52:50 +01:00
.PHONY : build -packages
2019-09-05 14:32:46 +01:00
build-packages : build -packages -race build -packages -normal build -npm ## Test docker images locally
2019-06-27 19:52:50 +01:00
build-packages-race :
2019-09-06 06:54:46 +01:00
go build -v ./...
2019-06-27 19:52:50 +01:00
build-packages-normal :
2019-09-06 06:54:46 +01:00
go build -v -race ./...
2019-09-05 14:32:46 +01:00
build-npm :
cd web/satellite && npm ci
2019-06-27 19:52:50 +01:00
2019-01-16 23:09:57 +00:00
##@ Simulator
2019-01-16 18:50:16 +00:00
2019-01-16 23:09:57 +00:00
.PHONY : install -sim
install-sim : ## install storj-sim
2019-01-16 18:50:16 +00:00
@echo " Running ${ @ } "
2019-10-04 21:48:41 +01:00
@go install -race -v storj.io/storj/cmd/storj-sim storj.io/storj/cmd/versioncontrol storj.io/storj/cmd/satellite storj.io/storj/cmd/storagenode storj.io/storj/cmd/uplink storj.io/storj/cmd/gateway storj.io/storj/cmd/identity storj.io/storj/cmd/certificates
2019-01-16 18:50:16 +00:00
2018-10-16 19:47:43 +01:00
##@ Test
2018-04-25 15:55:26 +01:00
2018-10-16 19:47:43 +01:00
.PHONY : test
2019-04-30 19:18:32 +01:00
test : ## Run tests on source code (jenkins)
2018-09-11 14:13:25 +01:00
go test -race -v -cover -coverprofile= .coverprofile ./...
2018-05-09 00:01:46 +01:00
@echo done
2018-06-05 22:06:37 +01:00
2019-01-16 23:09:57 +00:00
.PHONY : test -sim
2019-04-30 19:18:32 +01:00
test-sim : ## Test source with storj-sim (jenkins)
2019-01-08 15:24:15 +00:00
@echo " Running ${ @ } "
2019-01-16 23:09:57 +00:00
@./scripts/test-sim.sh
2019-01-08 15:24:15 +00:00
2019-09-04 18:58:38 +01:00
.PHONY : test -certificates
test-certificates : ## Test certificate signing service and storagenode setup (jenkins)
2019-01-04 17:23:23 +00:00
@echo " Running ${ @ } "
2019-09-04 18:58:38 +01:00
@./scripts/test-certificates.sh
2019-01-04 17:23:23 +00:00
2018-10-16 19:47:43 +01:00
.PHONY : test -docker
test-docker : ## Run tests in Docker
2018-07-25 22:47:02 +01:00
docker-compose up -d --remove-orphans test
docker-compose run test make test
2019-06-04 18:12:27 +01:00
.PHONY : check -satellite -config -lock
check-satellite-config-lock : ## Test if the satellite config file has changed (jenkins)
@echo " Running ${ @ } "
@cd scripts; ./check-satellite-config-lock.sh
2018-08-23 16:48:03 +01:00
.PHONY : all -in -one
2018-10-16 19:47:43 +01:00
all-in-one : ## Deploy docker images with one storagenode locally
2019-01-03 19:54:27 +00:00
export VERSION = " ${ TAG } ${ CUSTOMTAG } " \
&& $( MAKE) satellite-image storagenode-image gateway-image \
&& docker-compose up --scale storagenode = 1 satellite gateway
.PHONY : test -all -in -one
test-all-in-one : ## Test docker images locally
export VERSION = " ${ TAG } ${ CUSTOMTAG } " \
&& $( MAKE) satellite-image storagenode-image gateway-image \
&& ./scripts/test-aio.sh
2018-06-21 20:36:39 +01:00
2019-08-07 00:03:14 +01:00
.PHONY : test -sim -backwards -compatible
test-sim-backwards-compatible : ## Test uploading a file with lastest release (jenkins)
@echo " Running ${ @ } "
@./scripts/test-sim-backwards.sh
2019-10-15 18:00:14 +01:00
.PHONY : check -monitoring
check-monitoring : ## Check for locked monkit calls that have changed
@echo " Running ${ @ } "
@go run ./scripts/check-monitoring.go | diff -U0 ./monkit.lock - \
|| ( echo "Locked monkit metrics have been changed. Notify #data-science and run \`go generate ./scripts/check-monitoring.go\` to update monkit.lock file." \
&& exit 1)
2018-10-16 19:47:43 +01:00
##@ Build
2018-07-13 16:02:33 +01:00
2019-10-08 09:52:19 +01:00
.PHONY : storagenode -console
storagenode-console :
# build web assets
rm -rf web/storagenode/dist
# install npm dependencies and build the binaries
docker run --rm -i \
--mount type = bind,src= " ${ PWD } " ,dst= /go/src/storj.io/storj \
-w /go/src/storj.io/storj/web/storagenode \
2019-10-08 13:59:22 +01:00
-e HOME = /tmp \
-u $( shell id -u) :$( shell id -g) \
2019-10-08 09:52:19 +01:00
node:10.15.1 \
/bin/bash -c "npm ci && npm run build"
# embed web assets into go
go-bindata -prefix web/storagenode/ -fs -o storagenode/console/consoleassets/bindata.resource.go -pkg consoleassets web/storagenode/dist/... web/storagenode/static/...
# configure existing go code to know about the new assets
/bin/echo -e '\nfunc init() { FileSystem = AssetFile() }' >> storagenode/console/consoleassets/bindata.resource.go
gofmt -w -s storagenode/console/consoleassets/bindata.resource.go
2018-10-16 19:47:43 +01:00
.PHONY : images
2019-10-04 21:48:41 +01:00
images : gateway -image satellite -image storagenode -image uplink -image versioncontrol -image ## Build gateway, satellite, storagenode, uplink, and versioncontrol Docker images
2018-10-16 19:47:43 +01:00
echo Built version: ${ TAG }
2018-08-23 22:04:51 +01:00
2018-12-04 21:10:23 +00:00
.PHONY : gateway -image
2019-08-19 10:40:16 +01:00
gateway-image : gateway_linux_arm gateway_linux_arm 64 gateway_linux_amd 64 ## Build gateway Docker image
2019-04-08 21:01:20 +01:00
${ DOCKER_BUILD } --pull= true -t storjlabs/gateway:${ TAG } ${ CUSTOMTAG } -amd64 \
-f cmd/gateway/Dockerfile .
${ DOCKER_BUILD } --pull= true -t storjlabs/gateway:${ TAG } ${ CUSTOMTAG } -arm32v6 \
--build-arg= GOARCH = arm --build-arg= DOCKER_ARCH = arm32v6 \
-f cmd/gateway/Dockerfile .
2019-08-19 10:40:16 +01:00
${ DOCKER_BUILD } --pull= true -t storjlabs/gateway:${ TAG } ${ CUSTOMTAG } -aarch64 \
--build-arg= GOARCH = arm --build-arg= DOCKER_ARCH = aarch64 \
-f cmd/gateway/Dockerfile .
2018-10-16 19:47:43 +01:00
.PHONY : satellite -image
2019-08-19 10:40:16 +01:00
satellite-image : satellite_linux_arm satellite_linux_arm 64 satellite_linux_amd 64 ## Build satellite Docker image
2019-04-08 21:01:20 +01:00
${ DOCKER_BUILD } --pull= true -t storjlabs/satellite:${ TAG } ${ CUSTOMTAG } -amd64 \
-f cmd/satellite/Dockerfile .
${ DOCKER_BUILD } --pull= true -t storjlabs/satellite:${ TAG } ${ CUSTOMTAG } -arm32v6 \
--build-arg= GOARCH = arm --build-arg= DOCKER_ARCH = arm32v6 \
-f cmd/satellite/Dockerfile .
2019-08-19 10:40:16 +01:00
${ DOCKER_BUILD } --pull= true -t storjlabs/satellite:${ TAG } ${ CUSTOMTAG } -aarch64 \
--build-arg= GOARCH = arm --build-arg= DOCKER_ARCH = aarch64 \
-f cmd/satellite/Dockerfile .
2018-10-16 19:47:43 +01:00
.PHONY : storagenode -image
2019-08-19 10:40:16 +01:00
storagenode-image : storagenode_linux_arm storagenode_linux_arm 64 storagenode_linux_amd 64 ## Build storagenode Docker image
2019-04-08 21:01:20 +01:00
${ DOCKER_BUILD } --pull= true -t storjlabs/storagenode:${ TAG } ${ CUSTOMTAG } -amd64 \
-f cmd/storagenode/Dockerfile .
${ DOCKER_BUILD } --pull= true -t storjlabs/storagenode:${ TAG } ${ CUSTOMTAG } -arm32v6 \
--build-arg= GOARCH = arm --build-arg= DOCKER_ARCH = arm32v6 \
-f cmd/storagenode/Dockerfile .
2019-08-19 10:40:16 +01:00
${ DOCKER_BUILD } --pull= true -t storjlabs/storagenode:${ TAG } ${ CUSTOMTAG } -aarch64 \
--build-arg= GOARCH = arm --build-arg= DOCKER_ARCH = aarch64 \
-f cmd/storagenode/Dockerfile .
2018-10-16 19:47:43 +01:00
.PHONY : uplink -image
2019-08-19 10:40:16 +01:00
uplink-image : uplink_linux_arm uplink_linux_arm 64 uplink_linux_amd 64 ## Build uplink Docker image
2019-04-08 21:01:20 +01:00
${ DOCKER_BUILD } --pull= true -t storjlabs/uplink:${ TAG } ${ CUSTOMTAG } -amd64 \
-f cmd/uplink/Dockerfile .
${ DOCKER_BUILD } --pull= true -t storjlabs/uplink:${ TAG } ${ CUSTOMTAG } -arm32v6 \
--build-arg= GOARCH = arm --build-arg= DOCKER_ARCH = arm32v6 \
-f cmd/uplink/Dockerfile .
2019-08-19 10:40:16 +01:00
${ DOCKER_BUILD } --pull= true -t storjlabs/uplink:${ TAG } ${ CUSTOMTAG } -aarch64 \
--build-arg= GOARCH = arm --build-arg= DOCKER_ARCH = aarch64 \
-f cmd/uplink/Dockerfile .
2019-05-02 22:25:04 +01:00
.PHONY : versioncontrol -image
2019-08-19 10:40:16 +01:00
versioncontrol-image : versioncontrol_linux_arm versioncontrol_linux_arm 64 versioncontrol_linux_amd 64 ## Build versioncontrol Docker image
2019-05-02 22:25:04 +01:00
${ DOCKER_BUILD } --pull= true -t storjlabs/versioncontrol:${ TAG } ${ CUSTOMTAG } -amd64 \
-f cmd/versioncontrol/Dockerfile .
${ DOCKER_BUILD } --pull= true -t storjlabs/versioncontrol:${ TAG } ${ CUSTOMTAG } -arm32v6 \
--build-arg= GOARCH = arm --build-arg= DOCKER_ARCH = arm32v6 \
-f cmd/versioncontrol/Dockerfile .
2019-08-19 10:40:16 +01:00
${ DOCKER_BUILD } --pull= true -t storjlabs/versioncontrol:${ TAG } ${ CUSTOMTAG } -aarch64 \
--build-arg= GOARCH = arm --build-arg= DOCKER_ARCH = aarch64 \
-f cmd/versioncontrol/Dockerfile .
2018-08-27 22:06:55 +01:00
2018-08-31 16:21:44 +01:00
.PHONY : binary
binary : CUSTOMTAG = -${GOOS }-${GOARCH }
binary :
2018-09-05 21:40:47 +01:00
@if [ -z " ${ COMPONENT } " ] ; then echo "Try one of the following targets instead:" \
&& for b in binaries ${ BINARIES } ; do echo " - $$ b " ; done && exit 1; fi
2018-08-31 16:21:44 +01:00
mkdir -p release/${ TAG }
2019-06-18 18:18:10 +01:00
mkdir -p /tmp/go-cache /tmp/go-pkg
2018-10-16 19:48:17 +01:00
rm -f cmd/${ COMPONENT } /resource.syso
if [ " ${ GOARCH } " = "amd64" ] ; then sixtyfour = "-64" ; fi ; \
2019-09-29 00:53:04 +01:00
[ " ${ GOOS } " = "windows" ] && [ " ${ GOARCH } " = "amd64" ] && goversioninfo $$ sixtyfour -o cmd/${ COMPONENT } /resource.syso \
2018-10-16 19:48:17 +01:00
-original-name ${ COMPONENT } _${ GOOS } _${ GOARCH } ${ FILEEXT } \
-description " ${ COMPONENT } program for Storj " \
2019-04-12 16:31:31 +01:00
-product-ver-build 9 -ver-build 9 \
-product-version "alpha9" \
2018-10-16 19:48:17 +01:00
resources/versioninfo.json || echo "goversioninfo is not installed, metadata will not be created"
2019-04-12 16:31:31 +01:00
docker run --rm -i -v " ${ PWD } " :/go/src/storj.io/storj -e GO111MODULE = on \
2018-11-26 14:11:09 +00:00
-e GOOS = ${ GOOS } -e GOARCH = ${ GOARCH } -e GOARM = 6 -e CGO_ENABLED = 1 \
2019-06-18 18:18:10 +01:00
-v /tmp/go-cache:/tmp/.cache/go-build -v /tmp/go-pkg:/go/pkg \
2019-04-12 16:31:31 +01:00
-w /go/src/storj.io/storj -e GOPROXY -u $( shell id -u) :$( shell id -g) storjlabs/golang:${ GO_VERSION } \
2019-09-27 16:38:02 +01:00
scripts/release.sh build -o release/${ TAG } /$( COMPONENT) _${ GOOS } _${ GOARCH } ${ FILEEXT } \
2019-04-12 16:31:31 +01:00
storj.io/storj/cmd/${ COMPONENT }
2018-09-05 21:40:47 +01:00
chmod 755 release/${ TAG } /$( COMPONENT) _${ GOOS } _${ GOARCH } ${ FILEEXT }
2018-10-17 19:21:18 +01:00
[ " ${ FILEEXT } " = ".exe" ] && storj-sign release/${ TAG } /$( COMPONENT) _${ GOOS } _${ GOARCH } ${ FILEEXT } || echo "Skipping signing"
2018-08-31 16:21:44 +01:00
rm -f release/${ TAG } /${ COMPONENT } _${ GOOS } _${ GOARCH } .zip
2018-11-07 18:19:09 +00:00
.PHONY : gateway_ %
gateway_% :
GOOS = $( word 2, $( subst _, ,$@ ) ) GOARCH = $( word 3, $( subst _, ,$@ ) ) COMPONENT = gateway $( MAKE) binary
2019-04-08 21:01:20 +01:00
$( MAKE) binary-check COMPONENT = gateway GOARCH = $( word 3, $( subst _, ,$@ ) ) GOOS = $( word 2, $( subst _, ,$@ ) )
2018-09-05 21:40:47 +01:00
.PHONY : satellite_ %
satellite_% :
GOOS = $( word 2, $( subst _, ,$@ ) ) GOARCH = $( word 3, $( subst _, ,$@ ) ) COMPONENT = satellite $( MAKE) binary
2019-04-08 21:01:20 +01:00
$( MAKE) binary-check COMPONENT = satellite GOARCH = $( word 3, $( subst _, ,$@ ) ) GOOS = $( word 2, $( subst _, ,$@ ) )
2018-09-05 21:40:47 +01:00
.PHONY : storagenode_ %
2019-10-08 09:52:19 +01:00
storagenode_% : storagenode -console
2019-04-08 21:01:20 +01:00
$( MAKE) binary-check COMPONENT = storagenode GOARCH = $( word 3, $( subst _, ,$@ ) ) GOOS = $( word 2, $( subst _, ,$@ ) )
.PHONY : binary -check
binary-check :
@if [ -f release/${ TAG } /${ COMPONENT } _${ GOOS } _${ GOARCH } ] ; then echo " release/ ${ TAG } / ${ COMPONENT } _ ${ GOOS } _ ${ GOARCH } exists " ; else $( MAKE) binary; fi
2018-09-05 21:40:47 +01:00
.PHONY : uplink_ %
uplink_% :
GOOS = $( word 2, $( subst _, ,$@ ) ) GOARCH = $( word 3, $( subst _, ,$@ ) ) COMPONENT = uplink $( MAKE) binary
2019-04-08 21:01:20 +01:00
$( MAKE) binary-check COMPONENT = uplink GOARCH = $( word 3, $( subst _, ,$@ ) ) GOOS = $( word 2, $( subst _, ,$@ ) )
2019-01-18 18:15:07 +00:00
.PHONY : identity_ %
identity_% :
2019-04-08 21:01:20 +01:00
$( MAKE) binary-check COMPONENT = identity GOARCH = $( word 3, $( subst _, ,$@ ) ) GOOS = $( word 2, $( subst _, ,$@ ) )
2019-01-18 18:15:07 +00:00
.PHONY : certificates_ %
certificates_% :
GOOS = $( word 2, $( subst _, ,$@ ) ) GOARCH = $( word 3, $( subst _, ,$@ ) ) COMPONENT = certificates $( MAKE) binary
2019-02-08 08:53:40 +00:00
.PHONY : inspector_ %
inspector_% :
GOOS = $( word 2, $( subst _, ,$@ ) ) GOARCH = $( word 3, $( subst _, ,$@ ) ) COMPONENT = inspector $( MAKE) binary
2019-05-02 22:25:04 +01:00
.PHONY : versioncontrol_ %
versioncontrol_% :
GOOS = $( word 2, $( subst _, ,$@ ) ) GOARCH = $( word 3, $( subst _, ,$@ ) ) COMPONENT = versioncontrol $( MAKE) binary
2019-08-14 20:04:56 +01:00
.PHONY : linksharing_ %
linksharing_% :
GOOS = $( word 2, $( subst _, ,$@ ) ) GOARCH = $( word 3, $( subst _, ,$@ ) ) COMPONENT = linksharing $( MAKE) binary
2019-09-19 13:25:46 +01:00
.PHONY : storagenode -updater_ %
storagenode-updater_% :
2019-09-29 00:53:04 +01:00
GOOS = $( word 2, $( subst _, ,$@ ) ) GOARCH = $( word 3, $( subst _, ,$@ ) ) COMPONENT = storagenode-updater $( MAKE) binary
2018-09-05 21:40:47 +01:00
2019-10-04 21:48:41 +01:00
COMPONENTLIST := certificates gateway identity inspector linksharing satellite storagenode storagenode-updater uplink versioncontrol
2019-09-29 00:53:04 +01:00
OSARCHLIST := darwin_amd64 linux_amd64 linux_arm linux_arm64 windows_amd64 freebsd_amd64
2018-09-05 21:40:47 +01:00
BINARIES := $( foreach C,$( COMPONENTLIST) ,$( foreach O,$( OSARCHLIST) ,$C_ $O ) )
2018-08-31 16:21:44 +01:00
.PHONY : binaries
2019-10-04 21:48:41 +01:00
binaries : ${BINARIES } ## Build certificates, gateway, identity, inspector, linksharing, satellite, storagenode, uplink, and versioncontrol binaries (jenkins)
2018-10-16 19:47:43 +01:00
2019-10-08 12:51:22 +01:00
.PHONY : sign -windows -installer
sign-windows-installer :
storj-sign release/${ TAG } /storagenode_windows_amd64.msi
2019-06-15 12:23:12 +01:00
.PHONY : libuplink
libuplink :
2019-08-13 13:24:31 +01:00
go build -ldflags= "-s -w" -buildmode c-shared -o uplink.so storj.io/storj/lib/uplinkc
2019-06-15 12:23:12 +01:00
cp lib/uplinkc/uplink_definitions.h uplink_definitions.h
2019-10-06 23:34:12 +01:00
.PHONY : libuplink -gomobile
libuplink-gomobile :
@./lib/uplink-gomobile/build.sh
2019-10-04 09:56:42 +01:00
2018-10-16 19:47:43 +01:00
##@ Deploy
.PHONY : deploy
deploy : ## Update Kubernetes deployments in staging (jenkins)
for deployment in $$ ( kubectl --context nonprod -n v3 get deployment -l app = storagenode --output= jsonpath = '{.items..metadata.name}' ) ; do \
kubectl --context nonprod --namespace v3 patch deployment $$ deployment -p" {\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"storagenode\",\"image\":\"storjlabs/storagenode: ${ TAG } \"}]}}}} " ; \
done
2019-04-26 06:08:42 +01:00
kubectl --context nonprod --namespace v3 patch deployment earth-satellite -p" {\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"satellite\",\"image\":\"storjlabs/satellite: ${ TAG } \"}]}}}} "
2018-10-16 19:47:43 +01:00
.PHONY : push -images
push-images : ## Push Docker images to Docker Hub (jenkins)
2019-04-08 21:01:20 +01:00
# images have to be pushed before a manifest can be created
# satellite
2019-10-04 21:48:41 +01:00
for c in gateway satellite storagenode uplink versioncontrol ; do \
2019-04-15 20:04:02 +01:00
docker push storjlabs/$$ c:${ TAG } ${ CUSTOMTAG } -amd64 \
&& docker push storjlabs/$$ c:${ TAG } ${ CUSTOMTAG } -arm32v6 \
2019-08-28 13:18:56 +01:00
&& docker push storjlabs/$$ c:${ TAG } ${ CUSTOMTAG } -aarch64 \
2019-04-15 18:49:08 +01:00
&& for t in ${ TAG } ${ CUSTOMTAG } ${ LATEST_TAG } ; do \
2019-08-28 13:18:56 +01:00
docker manifest create storjlabs/$$ c:$$ t \
storjlabs/$$ c:${ TAG } ${ CUSTOMTAG } -amd64 \
storjlabs/$$ c:${ TAG } ${ CUSTOMTAG } -arm32v6 \
storjlabs/$$ c:${ TAG } ${ CUSTOMTAG } -aarch64 \
2019-04-15 19:30:36 +01:00
&& docker manifest annotate storjlabs/$$ c:$$ t storjlabs/$$ c:${ TAG } ${ CUSTOMTAG } -amd64 --os linux --arch amd64 \
2019-08-28 13:18:56 +01:00
&& docker manifest annotate storjlabs/$$ c:$$ t storjlabs/$$ c:${ TAG } ${ CUSTOMTAG } -arm32v6 --os linux --arch arm --variant v6 \
&& docker manifest annotate storjlabs/$$ c:$$ t storjlabs/$$ c:${ TAG } ${ CUSTOMTAG } -aarch64 --os linux --arch arm64 \
2019-04-15 18:49:08 +01:00
&& docker manifest push --purge storjlabs/$$ c:$$ t \
; done \
; done
2018-08-31 16:21:44 +01:00
.PHONY : binaries -upload
2018-10-16 19:47:43 +01:00
binaries-upload : ## Upload binaries to Google Storage (jenkins)
2019-04-12 18:28:04 +01:00
cd " release/ ${ TAG } " ; for f in *; do zip $$ { f} .zip $$ { f} ; done
2019-04-08 21:01:20 +01:00
cd " release/ ${ TAG } " ; gsutil -m cp -r *.zip " gs://storj-v3-alpha-builds/ ${ TAG } / "
2018-08-31 16:21:44 +01:00
2018-10-16 19:47:43 +01:00
##@ Clean
.PHONY : clean
clean : test -docker -clean binaries -clean clean -images ## Clean docker test environment, local release binaries, and local Docker images
2018-08-31 16:21:44 +01:00
.PHONY : binaries -clean
2018-10-16 19:47:43 +01:00
binaries-clean : ## Remove all local release binaries (jenkins)
2018-08-31 16:21:44 +01:00
rm -rf release
2018-10-16 19:47:43 +01:00
.PHONY : clean -images
clean-images :
2019-03-07 15:22:18 +00:00
-docker rmi storjlabs/gateway:${ TAG } ${ CUSTOMTAG }
-docker rmi storjlabs/satellite:${ TAG } ${ CUSTOMTAG }
-docker rmi storjlabs/storagenode:${ TAG } ${ CUSTOMTAG }
-docker rmi storjlabs/uplink:${ TAG } ${ CUSTOMTAG }
2019-05-21 12:57:20 +01:00
-docker rmi storjlabs/versioncontrol:${ TAG } ${ CUSTOMTAG }
2018-10-16 19:47:43 +01:00
.PHONY : test -docker -clean
test-docker-clean : ## Clean up Docker environment used in test-docker target
-docker-compose down --rmi all
2019-05-09 14:25:44 +01:00
##@ Tooling
2019-09-10 14:24:16 +01:00
.PHONY : diagrams
diagrams :
archview -skip-class "Peer,Master Database" -trim-prefix storj.io/storj/satellite/ ./satellite/... | dot -T svg -o satellite.svg
archview -skip-class "Peer,Master Database" -trim-prefix storj.io/storj/storagenode/ ./storagenode/... | dot -T svg -o storage-node.svg
.PHONY : diagrams -graphml
diagrams-graphml :
archview -skip-class "Peer,Master Database" -trim-prefix storj.io/storj/satellite/ -out satellite.graphml ./satellite/...
archview -skip-class "Peer,Master Database" -trim-prefix storj.io/storj/storagenode/ -out storage-node.graphml ./storagenode/...
2019-06-04 18:12:27 +01:00
.PHONY : update -satellite -config -lock
update-satellite-config-lock : ## Update the satellite config lock file
2019-05-09 14:25:44 +01:00
@docker run -ti --rm \
-v ${ GOPATH } /pkg/mod:/go/pkg/mod \
-v $( shell pwd ) :/storj \
-v $( shell go env GOCACHE) :/go-cache \
-e "GOCACHE=/go-cache" \
-u root:root \
golang:${ GO_VERSION } \
2019-06-04 18:12:27 +01:00
/bin/bash -c "cd /storj/scripts; ./update-satellite-config-lock.sh"