30 Commits

Author SHA1 Message Date
Jarek Kowalski
2e16917518 chore(ci): enforce consistent formatting of KopiaUI code (#4586)
* chore(ci): enforce consistent formatting of KopiaUI code

* fix htmlui_changelog.sh

* fix
2025-05-20 22:33:54 -07:00
Jarek Kowalski
68c5308e4e chore(ci): use 'npm ci' when building on CI (#4253) 2024-11-16 14:09:48 -08:00
Julio Lopez
ca6d6acad8 fix(ci): avoid hung CI jobs while notarizing the kopia app on MacOS (#3168)
Avoid hanging while notarizing the UI on MacOS for PRs in the same repo.

Unset various variables, including KOPIA_UI_NOTARIZE,  when
FORCE_KOPIA_UI_SIGN is not specified
2023-07-21 11:33:40 -07:00
Jarek Kowalski
cd69801082 chore(ci): fix npm audit failure by removing electron-first-run and upgrading electron and semver (#3101)
Fixed semi-manually:

```
npm remove electron-first-run

npm install electron@25.0.0

npm install semver@7.5.3
```
2023-07-03 20:25:28 +00:00
Jarek Kowalski
09575943f8 test(ui): added minimal automated KopiaUI test (#2434)
* test(ui): added minimal automated KopiaUI test

```
$ make kopia-ui-test
```

This currently executes super minimal E2E test on pre-built KopiaUI
using Playwright https://playwright.dev

* better os/arch detection

* remove unwanted log

* fixed executable path on linux

* fix for linux, misc
2022-09-23 17:37:36 -07:00
Jarek Kowalski
3af5a48493 refactor(ci): removed unused ReactJS app from KopiaUI (#2117)
This was producing an empty directory, which was completely unused.
2022-07-02 17:07:26 +00:00
Jarek Kowalski
b4619ffacf npm: moved build-time dependencies to devDependencies section, explicit npm audit (#1497) 2021-11-07 08:59:25 -08:00
Jarek Kowalski
e7ed4951d6 ci: also build armv7l version of KopiaUI (#1483)
Also fixed embedded server paths for KopiaUI.

Fixes #1448
2021-11-04 16:50:47 -07:00
Jarek Kowalski
eca9228971 ci: build arm64 linux UI (#1482) 2021-11-04 08:24:08 -07:00
Jarek Kowalski
56cd086f92 kopia-ui: improved auto-update experience (#1390) 2021-10-14 23:21:07 -07:00
Z
b105e1ecf3 add conditional to KopiaUI makefile to build arm64 and x64 versions (#1351) 2021-10-03 16:40:29 -07:00
Jarek Kowalski
16282b5b61 Makefile refactoring + publish scoop package (#907)
* Makefile: refactoring

- added signing of windows exe in a zip package
- removed Windows build from goreleaser
- removed homebrew from goreleaser
- enabled incremental builds

* ci: publish scoop package
2021-03-22 22:39:24 -07:00
Jarek Kowalski
335ff79e78 CI refactoring (#903)
* ci: publish additional binaries as artifacts

* ci: install {htmlui,app}/node_modules as part of ci-setup

* ci: added retry to improve robustness of builds

* ci: continue-on-error for non-pull-requests

* ci: moved publish-packages to Stage And Publish Artifacts phase
2021-03-21 15:17:39 -07:00
Jarek Kowalski
10774d5acd ci/cd: refactored how GH releases are published (#867)
- stop publishing to github directly from goreleaser and electron builder
- upload dist/ as artifact at the end of each build
- stage release in a separate directory, generated checksum, GPG sign and publish
- removed spaces from Windows setup exe
2021-03-20 11:46:05 -07:00
Jarek Kowalski
e2b9a81ac3 Major CI/CD refactoring and re-added support for ARM/ARM64 runners (#849)
* ci: refactored CI/CD logic & Makefile

- removed all travis CI emulation environment variables and replaced with:

CI_TAG=<empty>|tag
IS_PULL_REQUEST=false|true

- refactored all OS and architecture-specific decisions to use around standard GOOS/GOARCH values instead of uname/OS
- re-added self-hosted runner for ARMHF (3 replicas)
- added brand new self-hosted runner for ARM64 (3 replicas)
- disabled attempts to publish and sign on forks
- improved integration test log output to better see timings and sub-tests
- print longest tests (unit tests and integration) after each run
- verified that all configurations build successfully on a clone (jkowalski/kopia)
- run make setup in parallel

* testing: fixed tests on ARM and ARM64

- fixed ARM-specific alignment issue
- cleaned up test logging
- fixed huge params warning threshold because it was tripping on ARM.
- reduced test complexity to make them fit in 15 minutes
2021-02-23 00:52:54 -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
b71e551fd5 app: changed releaseType to release to fix publishing artifacts to GitHub, 2nd try 2020-09-13 18:47:05 -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
6fa7da5a5f app: use KOPIA_VERSION computed in tools.mk 2020-03-05 18:40:03 -08:00
Jarek Kowalski
5412d75f79 htmlui: approaching usability by mere mortals
- added ability to make new snapshots from the UI
- added directory picker
- hide/show macOS dock icon automatically
- fixed copy/paste on Mac (apparently if you don't have 'Edit' menu
  in your app, copy/paste and many other shortcut keys simply don't
  work)
- added smart time formatting ("X minutes ago", etc.) in lists
  using 'moment' library
- added progress information to snapshots
2020-02-22 20:03:57 -08:00
Jarek Kowalski
28aab656fc kopia-ui: more version number tweaks, enable snapcraft on travis 2020-02-19 23:59:03 -08:00
Jarek Kowalski
ffb31b62d1 kopia-ui: adjusted build version format 2020-02-19 23:36:28 -08:00
Jarek Kowalski
ff5abd5639 kopia-ui: don't package linux app yet, fix version numbering 2020-02-19 23:27:19 -08:00
Jarek Kowalski
98f1b26f39 kopia-ui: support for auto-update and publishing prerelease binaries from Travis to kopia/kopia-ui-release 2020-02-19 23:08:12 -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
d2360327f8 travis: caching 2020-02-03 19:08:38 -08:00
Jarek Kowalski
a454f04d75 travis: fixed docker variable filtering which was breaking kopia-ui 2020-02-01 16:59:13 -08:00
Jarek Kowalski
1e054554a3 kopia-ui: pass missing environment variables to Electron build on Travis 2020-02-01 13:20:18 -08:00
Jarek Kowalski
bc4f1f76fe kopia-ui: pass missing environment variables to Electron build on Travis 2020-02-01 12:55:51 -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