Files
kopia/app/Makefile
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

54 lines
1.3 KiB
Makefile

SHELL:=/bin/bash
include ../tools/tools.mk
node_modules: $(npm)
$(npm) $(npm_flags) install
electron_builder_flags:=
electron_builder_flags+=-c.extraMetadata.version=$(KOPIA_VERSION:v%=%)
electron_publish_flag:=never
ifeq ($(TRAVIS_PULL_REQUEST),false)
electron_publish_flag=always
ifneq ($(TRAVIS_TAG),)
# tagged release - create draft release, but don't publish
electron_builder_flags+=-c.publish.releaseType=release
electron_builder_flags+=-c.publish.owner=$(REPO_OWNER)
electron_builder_flags+=-c.publish.repo=kopia
else
# post-submit run, create a release in another repo
electron_builder_flags+=-c.publish.owner=$(REPO_OWNER)
electron_builder_flags+=-c.publish.repo=kopia-ui-release
electron_builder_flags+=-c.publish.releaseType=release
endif
else
# not running on Travis, or Travis in PR mode, don't build installer and don't publish
ifneq ($(FORCE_KOPIA_UI_SIGN),)
electron_builder_flags+=--dir
endif
endif
ifeq ($(TRAVIS_OS_NAME),windows)
# disable Kopia UI code signing on Windows.
undefine CSC_LINK
undefine CSC_KEY_PASSWORD
endif
dev: node_modules
$(npm) $(npm_flags) run dev
run: build-html
$(npm) $(npm_flags) run start-electron-prebuilt
build-html: node_modules
$(npm) $(npm_flags) run build-html
build-electron: node_modules build-html
$(npm) $(npm_flags) run build-electron -- $(electron_builder_flags) -p $(electron_publish_flag)