blob: cf88429e44a80a31928835e758d564c2e66cb542 (
plain)
1 # Description: an open-source systems monitoring and alerting toolkit
2 # URL: https://prometheus.io
3 # Maintainer: Tim Biermann, tbier at posteo dot de
4 # Depends on: go npm
5
6 name=prometheus
7 version=2.33.5
8 release=1
9 source=(https://github.com/prometheus/prometheus/archive/v$version/$name-$version.tar.gz
10 prometheus.conf prometheus.service)
11
12 build() {
13 # setup build env {{{
14 export LC_ALL=C
15
16 ## Node Setup
17 #export NODE_ENV=production
18 #[ ! -d $PKGMK_SOURCE_DIR/npm_cache ] && mkdir $PKGMK_SOURCE_DIR/npm_cache
19 #export npm_config_cache=$PKGMK_SOURCE_DIR/npm_cache
20 export NPM_CONFIG_PREFIX="$SRC/npm"
21 export PATH+=":$NPM_CONFIG_PREFIX/bin"
22
23 ## Go Setup
24 export GOPATH="$SRC/gopath"
25 export PATH+=":$GOPATH/bin"
26 mkdir -p "$GOPATH/src/github.com/grafana/"
27 ln -fsrT "$SRC/grafana-$version/" "$GOPATH/src/github.com/grafana/grafana"
28 export CGO_LDFLAGS="${LDFLAGS}"
29 export CGO_CPPFLAGS="${CPPFLAGS}"
30 export CGO_CFLAGS="${CFLAGS}"
31 export CGO_CXXFLAGS="${CXXFLAGS}"
32 export GOFLAGS="-buildmode=pie -trimpath -modcacherw"
33
34 GOLDFLAGS="-X github.com/prometheus/common/version.Version=$version
35 -X github.com/prometheus/common/version.Revision=CRUX
36 -X github.com/prometheus/common/version.Branch=master
37 -X github.com/prometheus/common/version.BuildUser=$USER@$HOSTNAME
38 -X github.com/prometheus/common/version.BuildDate=$(date -u +%Y%m%d-%H:%M:%S)
39 "
40
41 if [ -n $LDFLAGS ]; then
42 # LDFLAGS (and only LDFLAGS) should be passed to -extldflags.
43 GOLDFLAGS="$GOLDFLAGS -extldflags $LDFLAGS"
44 fi
45 # }}}
46 cd $name-$version
47
48 cd web/ui
49 npm install
50 npm run build
51 npm run build:module
52 npm run lint
53 GOOS= GOARCH= go generate -x -v
54 cd ../..
55
56 gofmt -w ./web/ui
57 go mod vendor
58 go build \
59 -trimpath \
60 -mod=vendor \
61 -ldflags "$GOLDFLAGS" \
62 -tags netgo,builtinassets \
63 ./cmd/prometheus
64 go build \
65 -trimpath \
66 -mod=vendor \
67 -ldflags "$GOLDFLAGS" \
68 ./cmd/promtool
69 # install
70 install -Dm755 -t $PKG/usr/bin prometheus promtool
71
72 install -Dm644 $SRC/prometheus.conf \
73 $PKG/etc/conf.d/prometheus
74 install -dm644 $PKG/var/lib/prometheus/data
75
76 install -Dm644 -t $PKG/etc/prometheus \
77 documentation/examples/prometheus.yml
78
79 mkdir -p $PKG/etc/prometheus/console_libraries
80 for file in console_libraries/*
81 do
82 install -Dm644 -t $PKG/etc/prometheus/console_libraries/ $file
83 done
84
85 mkdir -p $PKG/etc/prometheus/consoles
86 for file in consoles/*
87 do
88 install -Dm644 -t $PKG/etc/prometheus/consoles/ $file
89 done
90
91 install -dm755 $PKG/usr/share/prometheus/web/ui
92 cp -R web/ui/{static,templates} $PKG/usr/share/prometheus/web/ui/
93 install -Dm644 $SRC/prometheus.conf $PKG/etc/conf.d/prometheus
94
95 ## install rc file
96 install -Dm 755 $SRC/prometheus.service $PKG/etc/rc.d/prometheus
97 }
98
99 # vim: foldmethod=marker foldlevelstart=1
|