-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathMakefile
More file actions
70 lines (54 loc) · 3 KB
/
Makefile
File metadata and controls
70 lines (54 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
define n
endef
.EXPORT_ALL_VARIABLES:
BETA=
DELTAS=5
ifeq (, $(VERSION))
VERSION=$(shell rg -o --no-filename 'MARKETING_VERSION = ([^;]+).+' -r '$$1' *.xcodeproj/project.pbxproj | head -1 | sd 'b\d+' '')
endif
ifneq (, $(BETA))
FULL_VERSION:=$(VERSION)b$(BETA)
else
FULL_VERSION:=$(VERSION)
endif
RELEASE_NOTES_FILES := $(wildcard ReleaseNotes/*.md)
ENV=Release
DERIVED_DATA_DIR=$(shell ls -td $$HOME/Library/Developer/Xcode/DerivedData/IsThereNet-* | head -1)
.PHONY: build upload release setversion appcast
print-% : ; @echo $* = $($*)
build: SHELL=fish
build:
make-app --build --devid --dmg -s IsThereNet -t IsThereNet -c Release --version $(FULL_VERSION)
xcp /tmp/apps/IsThereNet-$(FULL_VERSION).dmg Releases/
upload:
rsync -avzP Releases/*.{delta,dmg} hetzner:/static/lowtechguys/releases/ || true
rsync -avz Releases/*.html hetzner:/static/lowtechguys/ReleaseNotes/
rsync -avzP Releases/appcast.xml hetzner:/static/lowtechguys/istherenet/
cfcli -d lowtechguys.com purge
release:
gh release create v$(VERSION) -F ReleaseNotes/$(VERSION).md "Releases/IsThereNet-$(VERSION).dmg#IsThereNet.dmg"
appcast: Releases/IsThereNet-$(FULL_VERSION).html
rm Releases/IsThereNet.dmg || true
ifneq (, $(BETA))
rm Releases/IsThereNet$(FULL_VERSION)*.delta >/dev/null 2>/dev/null || true
generate_appcast --channel beta --maximum-versions 10 --maximum-deltas $(DELTAS) --link "https://lowtechguys.com/istherenet" --full-release-notes-url "https://github.com/FuzzyIdeas/IsThereNet/releases" --release-notes-url-prefix https://files.lowtechguys.com/ReleaseNotes/ --download-url-prefix "https://files.lowtechguys.com/releases/" -o Releases/appcast.xml Releases
else
rm Releases/IsThereNet$(FULL_VERSION)*.delta >/dev/null 2>/dev/null || true
rm Releases/IsThereNet-*b*.dmg >/dev/null 2>/dev/null || true
rm Releases/IsThereNet*b*.delta >/dev/null 2>/dev/null || true
generate_appcast --maximum-versions 10 --maximum-deltas $(DELTAS) --link "https://lowtechguys.com/istherenet" --full-release-notes-url "https://github.com/FuzzyIdeas/IsThereNet/releases" --release-notes-url-prefix https://files.lowtechguys.com/ReleaseNotes/ --download-url-prefix "https://files.lowtechguys.com/releases/" -o Releases/appcast.xml Releases
cp Releases/IsThereNet-$(FULL_VERSION).dmg Releases/IsThereNet.dmg
endif
setversion: OLD_VERSION=$(shell rg -o --no-filename 'MARKETING_VERSION = ([^;]+).+' -r '$$1' *.xcodeproj/project.pbxproj | head -1)
setversion: SHELL=fish
setversion:
ifneq (, $(FULL_VERSION))
sdf '((?:CURRENT_PROJECT|MARKETING)_VERSION) = $(OLD_VERSION);' '$$1 = $(FULL_VERSION);'
endif
Releases/IsThereNet-%.html: ReleaseNotes/$(VERSION)*.md
@echo Compiling $^ to $@
ifneq (, $(BETA))
pandoc -f gfm -o $@ --standalone --metadata title="IsThereNet $(FULL_VERSION) - Release Notes" --css https://files.lowtechguys.com/release.css $(shell ls -t ReleaseNotes/$(VERSION)*.md)
else
pandoc -f gfm -o $@ --standalone --metadata title="IsThereNet $(FULL_VERSION) - Release Notes" --css https://files.lowtechguys.com/release.css ReleaseNotes/$(VERSION).md
endif