grafana/Makefile

45 lines
1.4 KiB
Makefile

NAME = grafana
SPEC = $(NAME).spec
default: verify-deps clean tar
verify-deps:
@which yarn >/dev/null 2>&1 || ( echo "yarn not found; run \`sudo npm install -g yarn\`" && false )
clean:
rm -f $(NAME)-*.tar $(NAME)-*.tar.gz
tar:
osc service manualrun
@version=$$( awk '/^Version:/ {print $$2}' $(SPEC) ) && \
echo "Package version is $$version" && \
basename=$(NAME)-$$version && \
tar=$$basename.tar && \
tmpdir=$$(mktemp -d -p .) && \
cd $$tmpdir && \
gunzip ../$$tar.gz && \
tar -xf ../$$tar && \
# recreate tarball explicitly in a format that handles long filenames \
tar --format=posix -cf ../$$tar $$basename && \
cd $$basename && \
# Patches for the JS frontend go after here \
patch --no-backup-if-mismatch -p1 -i ../../0001-Add-source-code-reference.patch && \
# End patches section \
go mod download && \
go mod verify && \
go mod vendor && \
tar --format=posix -cf ../../vendor.tar vendor && \
# avoid ".git can't be found" \
git init && \
# avoid "FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory" \
export NODE_OPTIONS=--max_old_space_size=8192 && \
yarn install --immutable && \
yarn run build && \
cd .. && \
echo "Updating $$basename/public in tarball..." && \
tar -rf ../$$tar $$basename/public && \
cd .. && \
gzip $$tar && \
gzip -f vendor.tar && \
rm -rf $$tmpdir