-
Notifications
You must be signed in to change notification settings - Fork 442
/
Copy pathMakefile
130 lines (107 loc) · 2.87 KB
/
Makefile
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
# Makefile for building the project
app_name=spreed
project_dir=$(CURDIR)/../$(app_name)
build_dir=$(CURDIR)/build/artifacts
appstore_dir=$(build_dir)/appstore
source_dir=$(build_dir)/source
sign_dir=$(build_dir)/sign
package_name=$(app_name)
cert_dir=$(HOME)/.nextcloud/certificates
version+=main
all: dev-setup build-production
dev-setup: clean-dev npm-init build-dev
production-setup: clean-dev npm-init build-production
release: appstore create-tag
build-dev: composer-install-dev build-js
build-production: composer-install-production build-js-production
composer-install-dev:
composer install
composer-install-production:
composer install --no-dev --classmap-authoritative
build-js:
npm run dev
build-js-production:
npm run build
watch-js:
npm run watch
test:
npm run test
lint:
npm run lint
lint-fix:
npm run lint:fix
npm-init:
npm ci
npm-update:
npm update
clean:
rm -rf js/*
rm -rf $(build_dir)
clean-dev: clean
rm -rf node_modules
rm -rf vendor
create-tag:
git tag -a v$(version) -m "Tagging the $(version) release."
git push origin v$(version)
appstore:
rm -rf $(build_dir)
mkdir -p $(sign_dir)
rsync -a \
--exclude=babel.config.js \
--exclude=/build \
--exclude=composer.patches.json \
--exclude=docs \
--exclude=.drone.jsonnet \
--exclude=.drone.yml \
--exclude=.editorconfig \
--exclude=.eslintignore \
--exclude=.eslintrc.js \
--exclude=.git \
--exclude=.git-blame-ignore-revs \
--exclude=.gitattributes \
--exclude=.github \
--exclude=.gitignore \
--exclude=jest.config.js \
--exclude=jest.global.setup.js \
--exclude=.l10nignore \
--exclude=mkdocs.yml \
--exclude=Makefile \
--exclude=node_modules \
--exclude=.patches \
--exclude=.php-cs-fixer.cache \
--exclude=.php-cs-fixer.dist.php \
--exclude=.php_cs.cache \
--exclude=.php_cs.dist \
--exclude=psalm.xml \
--exclude=README.md \
--exclude=.readthedocs.yaml \
--exclude=/recording \
--exclude=/redocly.yaml \
--exclude=/site \
--exclude=/src \
--exclude=.stylelintignore \
--exclude=stylelint.config.js \
--exclude=.tx \
--exclude=tests \
--exclude=tsconfig.json \
--exclude=vendor/bamarni \
--exclude=vendor/bin \
--exclude=vendor-bin \
--exclude=webpack.common.config.js \
--exclude=webpack.config.js \
$(project_dir)/ $(sign_dir)/$(app_name)
@if [ -f $(cert_dir)/$(app_name).key ]; then \
echo "Signing app files…"; \
php ../../occ integrity:sign-app \
--privateKey=$(cert_dir)/$(app_name).key\
--certificate=$(cert_dir)/$(app_name).crt\
--path=$(sign_dir)/$(app_name); \
fi
tar -czf $(build_dir)/$(app_name).tar.gz \
-C $(sign_dir) $(app_name)
@if [ -f $(cert_dir)/$(app_name).key ]; then \
echo "Signing package…"; \
openssl dgst -sha512 -sign $(cert_dir)/$(app_name).key $(build_dir)/$(app_name).tar.gz | openssl base64; \
fi