diff --git a/.travis.yml b/.travis.yml index f1b73688c..024ddc674 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ dist: bionic language: go go: -- '1.13.x' +- 1.13.x os: - linux - osx @@ -13,15 +13,18 @@ install: make travis-setup script: make travis-release cache: directories: - - $HOME/.cache/electron - - $HOME/.cache/electron-builder + - $HOME/.cache/electron + - $HOME/.cache/electron-builder deploy: -- provider: script - script: make tagged-release +- provider: releases + api_key: + secure: L8xxKXwaUFByM0y/ztlimRsYOURwPY6HusQfeplHVp67y/GCpoSBDPLdk3KmzzQuxafl9u/jiSHUXAvC5h18no89a0AWjQjy63GjGAC1ND9kt2WfS6lwrtUo9ISLr5GasSOb0aMJ7V5oIrslKU1wuDraoGZIdXb0uNIiVVG86g2BDoY5gnYLpdmeqIOHtUIYgbHSfvW++t0PuD4OE/unRhoAXUFGb0Gz9KdQIBRZBvULLCySQ4wZp+LLh8GsRr982Rv4oraa++ddVGFqaDTfZq+hezuCXcmuSsWmTTk7M/J1mU0vuNQw90zAomLxPKZRWXSYBy4Sw1XBJH2Gkav3dKV3T7ZmN+mLmcUdTqnG5R2NC2lYtgQD5usFPjBgchrLUEATdlTOoKneZV3aieXcwTxRGXK9lG+a2VIHo3mAebUnbBmcASdpRwo52V42lsMgTWStTgC4Y7MdrH3zp4FolB/K6S6oKWwBakxYWAxJkMqnrG638EkJdhqGa5/rUVep6powPG4VurkNvuoNsYruj3Wp1Wzk2yj5yNIHfXHISaddeP3qqzF7Y540siyMnf+j3ji2FVrZBmqFl8/kgXd/p47Aum7XqgA7xhEgVm+6BSdheLy7FVuHfpP1G7SIw9yhuC5BSeKZ9BxYU7DHAWa2URQTTAy58NDXzB6ZeIwoFx8= skip_cleanup: true + file: "dist/**" + draft: true on: - tags: true repo: kopia/kopia + tags: true - provider: pages skip_cleanup: true github_token: "$GITHUB_TOKEN" diff --git a/Makefile b/Makefile index 0d0d1063d..fb82a4912 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -COVERAGE_PACKAGES=./repo/...,./fs/...,./snapshot/... +COVERAGE_PACKAGES=github.com/kopia/kopia/repo/...,github.com/kopia/kopia/fs/...,github.com/kopia/kopia/snapshot/... GO_TEST=go test PARALLEL=8 TEST_FLAGS= @@ -40,32 +40,12 @@ lint-and-log: $(LINTER_TOOL) vet: go vet -all . -build-linux-amd64: - CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build ./... - -build-windows-amd64: - CGO_ENABLED=0 GOARCH=amd64 GOOS=windows go build ./... - -build-darwin-amd64: - CGO_ENABLED=0 GOARCH=amd64 GOOS=darwin go build ./... - -build-linux-arm: - CGO_ENABLED=0 GOARCH=arm GOOS=linux go build ./... - -build-linux-arm64: - CGO_ENABLED=0 GOARCH=arm64 GOOS=linux go build ./... - -build-all: build-linux-amd64 build-windows-amd64 build-darwin-amd64 build-linux-arm build-linux-arm64 - travis-setup: travis-install-gpg-key travis-install-test-credentials go mod download website: $(MAKE) -C site build -kopia-ui: build-electron-all - $(MAKE) -C app build-electron-dir - html-ui: $(MAKE) -C htmlui build-html @@ -75,43 +55,50 @@ html-ui-bindata: html-ui $(BINDATA_TOOL) html-ui-bindata-fallback: $(BINDATA_TOOL) (cd internal/server && $(BINDATA_TOOL) -fs -tags !embedhtml -o "$(CURDIR)/internal/server/htmlui_fallback.go" -pkg server index.html) +# by default build unpacked Kopia UI for current OS only +KOPIA_UI_BUILD_TARGET=build-electron-dir + ifeq ($(TRAVIS_OS_NAME),osx) - -kopia-ui-osx: goreleaser-nopublish - $(MAKE) -C app build-all-mac - -travis-release-os-specific: kopia-ui-osx - +# build and package Mac app +KOPIA_UI_BUILD_TARGET=build-all-mac endif - ifeq ($(TRAVIS_OS_NAME),linux) - -travis-release-os-specific: kopia-ui-win-linux - -kopia-ui-win-linux: goreleaser-nopublish - $(MAKE) -C app build-all-win-linux-docker - +# build and package Windows and Linux app +KOPIA_UI_BUILD_TARGET=build-all-win-linux-docker endif +kopia-ui: goreleaser + $(MAKE) -C app $(KOPIA_UI_BUILD_TARGET) + +travis-release: goreleaser kopia-ui website + $(MAKE) test-all + $(MAKE) integration-tests + $(MAKE) stress-test +ifneq ($(TRAVIS_TAG),) + $(MAKE) travis-create-long-term-repository +endif + +test-all: lint vet test-with-coverage + +# goreleaser - builds binaries for all platforms +GORELEASER_OPTIONS=--rm-dist --skip-publish + ifeq ($(TRAVIS_OS_NAME),) - -travis-release-os-specific: - + # not running on travis, skip signing + GORELEASER_OPTIONS+=--skip-sign endif -travis-release: test-with-coverage lint vet goreleaser-nopublish integration-tests upload-coverage website stress-test travis-release-os-specific +ifeq ($(TRAVIS_TAG),) + # not a tagged release + GORELEASER_OPTIONS+=--snapshot +endif -goreleaser-nopublish: $(GORELEASER_TOOL) - $(GORELEASER_TOOL) --skip-publish --skip-sign --rm-dist --snapshot - -tagged-release: $(GORELEASER_TOOL) - $(GORELEASER_TOOL) --rm-dist - # this is a no-op for PRs and non-tagged releses - $(MAKE) travis-create-long-term-repository +goreleaser: $(GORELEASER_TOOL) + $(GORELEASER_TOOL) $(GORELEASER_OPTIONS) ifeq ($(TRAVIS_PULL_REQUEST),false) -upload-coverage: $(GOVERALLS_TOOL) +upload-coverage: $(GOVERALLS_TOOL) test-with-coverage $(GOVERALLS_TOOL) -service=travis-ci -coverprofile=tmp.cov else @@ -131,7 +118,7 @@ dev-deps: GO111MODULE=off go get -u github.com/sqs/goreturns test-with-coverage: - $(GO_TEST) -count=1 -coverprofile=tmp.cov --coverpkg $(COVERAGE_PACKAGES) -timeout 90s github.com/kopia/kopia/... + $(GO_TEST) -count=1 -coverprofile=tmp.cov --coverpkg $(COVERAGE_PACKAGES) -timeout 90s `go list ./...` test-with-coverage-pkgonly: $(GO_TEST) -count=1 -coverprofile=tmp.cov -timeout 90s github.com/kopia/kopia/... diff --git a/app/package.json b/app/package.json index d4e6683d1..e42adb779 100644 --- a/app/package.json +++ b/app/package.json @@ -86,13 +86,13 @@ "test": "react-scripts test", "eject": "react-scripts eject", "start-electron": "electron .", - "build-electron": "electron-builder -mwl", + "build-electron": "electron-builder", "build-electron-all": "electron-builder -wlm", "build-electron-win": "electron-builder -w --dir", "build-electron-linux": "electron-builder -l", "build-electron-win-linux": "electron-builder -wl", "build-electron-mac": "electron-builder -m", - "build-electron-dir": "electron-builder --dir -wlm", + "build-electron-dir": "electron-builder --dir", "start-electron-prebuilt": "ELECTRON_IS_DEV=0 electron .", "dev": "concurrently \"react-scripts start\" \"sleep 3s; electron .\"" }, diff --git a/go.mod b/go.mod index c6e7c4ae3..88275072d 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,6 @@ require ( github.com/klauspost/pgzip v1.2.1 github.com/kylelemons/godebug v1.1.0 github.com/minio/minio-go/v6 v6.0.45 - github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/natefinch/atomic v0.0.0-20150920032501-a62ce929ffcc github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 github.com/pkg/errors v0.8.1 diff --git a/go.sum b/go.sum index 91352af6a..63b0ffb73 100644 --- a/go.sum +++ b/go.sum @@ -30,6 +30,7 @@ github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe2 github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/efarrer/iothrottler v0.0.0-20141121142253-60e7e547c7fe h1:WAx1vRufH0I2pTWldQkXPzpc+jndCOi2FH334LFQ1PI= diff --git a/tests/stress_test/stress_test.go b/tests/stress_test/stress_test.go index 1823ecac0..dbcfdea66 100644 --- a/tests/stress_test/stress_test.go +++ b/tests/stress_test/stress_test.go @@ -27,7 +27,7 @@ func TestStressBlockManager(t *testing.T) { var duration = 3 * time.Second if os.Getenv("KOPIA_LONG_STRESS_TEST") != "" { - duration = 3 * time.Minute + duration = 30 * time.Second } stressTestWithStorage(t, memst, duration)