1
1
#! /bin/bash -e
2
2
3
- # Update submodules and PR branches
4
- /bin/bash $( dirname $0 ) /update.sh
3
+ # Define global variables
4
+ NO_UPDATE=0
5
+ NO_CLIENT=0
6
+ NO_CLIENT_DOCKER=0
7
+ NO_SERVER_RPM=0
8
+
9
+ while test " $# " -gt 0; do
10
+ case " $1 " in
11
+ --no-update)
12
+ NO_UPDATE=1
13
+ ;;
14
+ --no-client)
15
+ NO_CLIENT=1
16
+ ;;
17
+ --no-client-docker)
18
+ NO_CLIENT_DOCKER=1
19
+ ;;
20
+ --no-server-rpm)
21
+ NO_SERVER_RPM=1
22
+ ;;
23
+ * )
24
+ echo " Unknown argument: $1 "
25
+ echo " Usage: $0 [--no-update] [--no-client] [--no-client-docker] [--no-server-rpm]"
26
+ exit 1
27
+ ;;
28
+ esac
29
+ shift
30
+ done
31
+
32
+ if [ " $NO_UPDATE " -eq 0 ]; then
33
+ # Update submodules and PR branches
34
+ /bin/bash $( dirname $0 ) /update.sh
35
+ fi
5
36
6
37
get_branch_name () {
7
38
local module=" ${1:- } "
@@ -33,7 +64,7 @@ echo $pmm_ui_tests_commit > pmmUITestsCommitSha
33
64
fb_commit_sha=$( git rev-parse HEAD)
34
65
echo $fb_commit_sha > fbCommitSha
35
66
36
- # We use a special docker image to build various PMM artifacts - `perconalab/rpmbuild:ol9 `.
67
+ # We use a special docker image to build various PMM artifacts - `perconalab/rpmbuild:3 `.
37
68
# Important: the docker container's user need to be able to write to these directories.
38
69
# The docker container's user is `builder` with uid 1000 and gid 1000. You need to make sure
39
70
# that the directories we create on the host are owned by a user with same uid and gid.
@@ -51,22 +82,26 @@ export RPMBUILD_DOCKER_IMAGE=perconalab/rpmbuild:3
51
82
# RAM: 16GB
52
83
# OS: Ubuntu 22.04.1 LTS
53
84
54
- # Build client source: 4m39s from scratch, 0m27s using cache
55
- " $PATH_TO_SCRIPTS /build-client-source"
85
+ if [ " $NO_CLIENT " -eq 0 ]; then
86
+ # Build client source: 4m39s from scratch, 0m27s using cache
87
+ " $PATH_TO_SCRIPTS /build-client-source"
56
88
57
- # Build client binary: ??? from scratch, 0m20s using cache
58
- " $PATH_TO_SCRIPTS /build-client-binary"
89
+ # Build client binary: ??? from scratch, 0m20s using cache
90
+ " $PATH_TO_SCRIPTS /build-client-binary"
59
91
60
- # Building client source rpm takes 13s (caching does not apply)
61
- " $PATH_TO_SCRIPTS /build-client-srpm"
92
+ # Building client source rpm takes 13s (caching does not apply)
93
+ " $PATH_TO_SCRIPTS /build-client-srpm"
62
94
63
- # Building client rpm takes 1m40s
64
- " $PATH_TO_SCRIPTS /build-client-rpm"
95
+ # Building client rpm takes 1m40s
96
+ " $PATH_TO_SCRIPTS /build-client-rpm"
97
+ fi
65
98
66
99
# Building client docker image takes 17s
67
100
GIT_COMMIT=$( git rev-parse HEAD | head -c 8)
68
101
export DOCKER_CLIENT_TAG=local/pmm-client:${GIT_COMMIT}
69
- " $PATH_TO_SCRIPTS /build-client-docker"
102
+ if [ " $NO_CLIENT_DOCKER " -eq 0 ] || [ " $NO_CLIENT " -eq 0 ]; then
103
+ " $PATH_TO_SCRIPTS /build-client-docker"
104
+ fi
70
105
71
106
# Building PMM CLient locally (non-CI, i.e. non-Jenkins)
72
107
# total time: 6m26s - build from scratch, no initial cache
@@ -79,20 +114,23 @@ export DOCKER_CLIENT_TAG=local/pmm-client:${GIT_COMMIT}
79
114
80
115
export RPM_EPOCH=1
81
116
export RPMBUILD_DIST=" el9"
82
- " $PATH_TO_SCRIPTS /build-server-rpm" percona-dashboards grafana-dashboards
83
- " $PATH_TO_SCRIPTS /build-server-rpm" pmm-managed pmm
84
- " $PATH_TO_SCRIPTS /build-server-rpm" percona-qan-api2 pmm
85
- " $PATH_TO_SCRIPTS /build-server-rpm" pmm-update pmm
86
- " $PATH_TO_SCRIPTS /build-server-rpm" pmm-dump
87
- " $PATH_TO_SCRIPTS /build-server-rpm" vmproxy pmm
88
117
89
- # 3rd-party
90
- " $PATH_TO_SCRIPTS /build-server-rpm" victoriametrics
91
- " $PATH_TO_SCRIPTS /build-server-rpm" grafana
118
+ if [ " $NO_SERVER_RPM " -eq 0 ]; then
119
+ " $PATH_TO_SCRIPTS /build-server-rpm" percona-dashboards grafana-dashboards
120
+ " $PATH_TO_SCRIPTS /build-server-rpm" pmm-managed pmm
121
+ " $PATH_TO_SCRIPTS /build-server-rpm" percona-qan-api2 pmm
122
+ " $PATH_TO_SCRIPTS /build-server-rpm" pmm-update pmm
123
+ " $PATH_TO_SCRIPTS /build-server-rpm" pmm-dump
124
+ " $PATH_TO_SCRIPTS /build-server-rpm" vmproxy pmm
125
+
126
+ # 3rd-party
127
+ " $PATH_TO_SCRIPTS /build-server-rpm" victoriametrics
128
+ " $PATH_TO_SCRIPTS /build-server-rpm" grafana
129
+ fi
92
130
93
131
export DOCKER_TAG=local/pmm-server:${GIT_COMMIT}
94
132
export RPMBUILD_DIST=el9
95
- export DOCKERFILE=Dockerfile.el9.local
133
+ export DOCKERFILE=Dockerfile.el9
96
134
${PATH_TO_SCRIPTS} /build-server-docker
97
135
98
136
# Clean up temporary files
0 commit comments