Commit Graph

41 Commits

Author SHA1 Message Date
Jarek Kowalski
2079770654 ci: don't allocate tty when running docker, since it's not supported on GH 2020-12-24 10:03:42 -08:00
Jarek Kowalski
97d630cc65 CI tweaks (#742)
* ci: run full release only on amd64

* ci: logging for apt-publish.sh

* ci: stop building website in Makefile as it's already handled by Netlify
2020-12-24 09:00:30 -08:00
Jarek Kowalski
2541f0013c ci: GitHub actions support (#739)
This mimics Travis behavior and also allows making full local release
from a GH owner other than 'kopia' as long as required secrets are
provided.

Supports:

- basic testing on PRs
- publishing kopia RPM, DEB and TAR.GZ release to <owner>/kopia
  (on tags)
- publishing KopiaUI release to <owner>/kopia (on tags)
  or <owner>/kopia-ui-release (on master)
- publishing RPM and APT packages from official kopia/kopia and
  master branch only

Verified on jkowalski/kopia clone:

Tags:
https://github.com/jkowalski/kopia/actions/runs/439735808
https://github.com/jkowalski/kopia/releases/tag/v0.8.0-testing4

Post-submit:
https://github.com/jkowalski/kopia/actions/runs/439720039
https://github.com/jkowalski/kopia-ui-release/releases/tag/v20201222.0.225118

* ci: remove .travis.yml
* testing: skip tests if environment values are empty
* ci: run heavyweight tests on amd64 only
* ci: remove .appveyor.yml
* makefile: removed appveyor travis emulation
2020-12-24 01:11:57 -08:00
Jarek Kowalski
e03971fc59 Upgraded linter to v1.33.0 (#734)
* linter: upgraded to 1.33, disabled some linters

* lint: fixed 'errorlint' errors

This ensures that all error comparisons use errors.Is() or errors.As().
We will be wrapping more errors going forward so it's important that
error checks are not strict everywhere.

Verified that there are no exceptions for errorlint linter which
guarantees that.

* lint: fixed or suppressed wrapcheck errors

* lint: nolintlint and misc cleanups

Co-authored-by: Julio López <julio+gh@kasten.io>
2020-12-21 22:39:22 -08:00
Jarek Kowalski
213a557435 ci: run make on GitHub actions (#736) 2020-12-21 17:15:46 -08:00
Julio López
4eb8f71567 Helper script to run robustness job (#721) 2020-12-15 20:32:19 -08:00
Jarek Kowalski
7d21eaa6c1 Cleanup old RPM and DEB packages from 'unstable' repositories (#677)
* tools: cleanup old RPM packages in the 'unstable' track automatically

* tools: remove old DEB automatically from the 'unstable' channel
2020-10-10 14:43:32 -07:00
Jarek Kowalski
a01bfde39a Makefile: plug in gotestsum for better test output (#652) 2020-09-29 21:14:20 -07:00
Jarek Kowalski
44968af7b6 release: fixed RPM signing by moving all of this to a single invocation of sign.sh 2020-09-13 17:07:49 -07:00
Jarek Kowalski
f3fc2ea3b7 tools: misc fixes to RPM publishing 2020-09-10 22:11:33 -07:00
Jarek Kowalski
5494746e67 tools: clean up repomd directory before updating 2020-09-10 18:59:52 -07:00
Jarek Kowalski
4ef314bee5 Added RPM repository (#600)
* goreleaser: added signatures to RPM binaries

Currently goreleaser does not support it, so we're overriding
signing script and signing all RPMs that it produces.

Also changed goreleaser parameters to only publish binaries
when running on linux/amd64.

* build: added automatic publishing of RPMs to a YUM repository

Also fixed RPM file names to match local conventions.
2020-09-09 23:18:20 -07:00
Jarek Kowalski
3d24fd8875 apt-publish: publish dummy i386 release, even though we don't make packages for it as Ubuntu on amd64 is sometimes confused and tries downloading i386 anyway (#574) 2020-08-31 17:22:17 -07:00
Jarek Kowalski
f0751233a0 apt: update caching parameters after push 2020-08-14 20:05:10 -07:00
Jarek Kowalski
3f71aef13d apt: fixed matching unstable version numbers 2020-08-14 15:34:05 -07:00
Jarek Kowalski
b381d31eb8 tools: added apt-publish tool that push to APT repository
The repository is in GCS and the script will automatically copy
DEB files from dist/ to the proper locations and will regenerate
APT package index.
2020-08-14 14:08:10 -07:00
Jarek Kowalski
6915e032b3 goreleaser: tweaks to support APT repositories
* build 32-bit arm DEB and RPM with armhf suffix
* change output files to use kopia version instead of TAG-next for snapshots
2020-08-14 14:08:10 -07:00
Jarek Kowalski
9a6dea898b Linter upgrade to v1.30.0 (#526)
* fixed godot linter errors
* reformatted source with gofumpt
* disabled some linters
* fixed nolintlint warnings
* fixed gci warnings
* lint: fixed 'nestif' warnings
* lint: fixed 'exhaustive' warnings
* lint: fixed 'gocritic' warnings
* lint: fixed 'noctx' warnings
* lint: fixed 'wsl' warnings
* lint: fixed 'goerr113' warnings
* lint: fixed 'gosec' warnings
* lint: upgraded linter to 1.30.0
* lint: more 'exhaustive' warnings

Co-authored-by: Nick <nick@kasten.io>
2020-08-12 19:28:53 -07:00
Jarek Kowalski
04254b68db Upgrade build-time dependencies (#510)
* goreleaser: upgraded to v1.140.1
* site: upgrade to latest Hugo, fixed deprecation warnings
* app: upgraded NPM dependencies to latest version to address some low-severity vulnerabilities
2020-08-04 15:54:05 -07:00
Jarek Kowalski
40acf238f3 Fixed arm and arm64 build. (#506)
* fixed a number of cases where misaligned data was causing panics on armv7 (but not armv8)
* travis: enable arm64
* test: reduce compressed data sizes when running on arm
* arm: wait longer for snapshots
2020-07-30 17:31:28 -07:00
Jarek Kowalski
cfa30f2e45 switched back to using v-prefixed tag names.
KOPIA_VERSION will now always be v-prefixed and we will strip the
prefix before embedding it in KopiaUI manifest.

Also upgraded Node and app NPM dependencies to latest versions.
2020-07-25 17:22:35 -07:00
Jarek Kowalski
993c3bfb3e linter: fixed how linter is installed on Darwin and Linux since it was getting wrong version 2020-05-11 23:58:41 -07:00
Jarek Kowalski
2055fe3cca Makefile: support Windows Appveyor environment (#407)
* Makefile: support Windows Appveyor environment

* appveyor: added .appveyor.yml

* travis: disable windows environment

* Makefile: do not run vet-time-inject on Windows

* Makefile: removed the use of backtick invocation of subshell which does not work on windows

* Makefile: make integration-tests work on Windows outside of Travis
2020-04-03 23:03:42 -07:00
Jarek Kowalski
16275a15b7 Makefile: changed how build number is calculated
Instead of taking timestamp + TRAVIS_BUILD_NUMBER at build time,
we take the time of the commit, to be deterministic. This requires
a little bit of makefile magic to strip leading zeroes to make the
version number that's semver compliant.

This will allow coordinating the build between different CI tools,
so that Windows can be built on AppVeyor and macOS/Linux on Travis CI.
2020-04-02 22:05:37 -07:00
Jarek Kowalski
6ad927384b travis: setup tools to support signing Windows binaries 2020-03-31 19:41:55 -07:00
badrelmers
e86e8970a1 fix makefile for windows (#377)
solve https://github.com/kopia/kopia/issues/375
2020-03-21 18:59:50 -07:00
Jarek Kowalski
272b657508 upgrade all dependencies to latest versions 2020-03-15 23:40:58 -07:00
Jarek Kowalski
e6fe1aa7f3 kopia-ui: misc
- launch server on a randomized port
- added support for connecting to remote server
- embedded version info in the app and htmlui
2020-03-05 18:40:03 -08:00
Jarek Kowalski
fd91186ead travis: used own retry script, since travis_retry does not work in makefile 2020-02-29 10:55:46 -08:00
Jarek Kowalski
007890ebfd travis: used own retry script, since travis_retry does not work in makefile 2020-02-29 10:46:42 -08:00
Jarek Kowalski
c159569070 changed how go-bindata is installed to avoid go.mod 2020-02-26 22:54:53 -08:00
Jarek Kowalski
7f79c77d73 Makefile: refactored tools to be installable on Windows with only minimal deps (make/curl/unzip)
This allows full kopia and kopia-ui to be built on Windows along with
running lint and integration tests.
2020-02-17 18:45:08 -08:00
Jarek Kowalski
930927547c makefile: fixed support for PATH that includes directories with spaces
Verified with:

make website PATH="/tmp/With Space:$PATH"
2020-02-17 11:23:38 -08:00
Jarek Kowalski
729c1e0314 lint: upgrade to 1.23.3 2020-02-09 19:46:27 -08:00
Jarek Kowalski
c3ead4bc3e Kopia UI: added desktop app shell based on Electron that runs in the tray (#183)
* app: added desktop app shell based on Electron that runs in the tray, starts a background kopia server and allows access to the UI

* icons: updated icons for the app

* htmlui: flexible containers
2020-02-01 11:58:22 -08:00
Jarek Kowalski
ac70a38101 lint: upgraded to 1.22.2 and make lint issues a build failure
fixed or silenced linter warnings, mostly due to magic numeric constants
2020-01-03 16:39:30 -08:00
Julio Lopez
a7ee7d57b6 Install go-bindata in /bin 2020-01-02 09:50:45 -08:00
Jarek Kowalski
771fec1077 build: added simple Windows-based build script
This orchestrates building HTMLUI and main binary, only uses built-in shell script and avoids having any dependencies on Unix tools. Latest go and npm are required.
2019-12-18 19:35:40 -08:00
Jarek Kowalski
bd7a82ab94 makefile: added clean target 2019-12-14 10:48:31 -08:00
Jarek Kowalski
6217df1a87 lint: switched to 1.21 and fixed a ton of whitespace issues discovered
by new wsl linter
2019-11-26 06:49:49 -08:00
Jarek Kowalski
e8a1eaa9ee htmlui: added experimental HTML-based UI
This is enabled by `kopia server --ui` and can be viewed in a browser
at http://localhost:51515/

Right now it can only list snapshots and policies (barely).
2019-11-20 14:41:38 -08:00