mirror of
https://github.com/kopia/kopia.git
synced 2026-10-22 14:15:03 -04:00
travis: refactored release to be easier to understand
There's now one target, `travis-release` that can be run locally, or on Travis CI except for: - code signing (Travis on non-PR runs) - publishing artifacts to GH releases (Travis on tagged releases) - creating long-term repository for testing (Travis on tagged releases)
This commit is contained in:
1 parent
390f7904e3
commit
2b07045ef9
6 files changed
+47
-57
No files matched your search
+9
-6
@@ -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"
|
||||
|
||||
@@ -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/...
|
||||
|
||||
+2
-2
@@ -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 .\""
|
||||
},
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user