mirror of https://github.com/grafana/grafana.git
				
				
				
			build: builds armv6 with rpi1 compat gcc.
This commit is contained in:
		
							parent
							
								
									35965e0efd
								
							
						
					
					
						commit
						6e802dc94d
					
				|  | @ -439,6 +439,15 @@ jobs: | ||||||
|           name: Update RPM repository |           name: Update RPM repository | ||||||
|           command: './scripts/build/update_repo/update-rpm.sh "oss" "$GPG_KEY_PASSWORD" "$CIRCLE_TAG" "dist"' |           command: './scripts/build/update_repo/update-rpm.sh "oss" "$GPG_KEY_PASSWORD" "$CIRCLE_TAG" "dist"' | ||||||
| 
 | 
 | ||||||
|  |   store-build-artifacts: | ||||||
|  |     docker: | ||||||
|  |       - image: circleci/node:8 | ||||||
|  |     steps: | ||||||
|  |       - attach_workspace: | ||||||
|  |           at: . | ||||||
|  |       - store_artifacts: | ||||||
|  |           path: ./dist | ||||||
|  | 
 | ||||||
| workflows: | workflows: | ||||||
|   version: 2 |   version: 2 | ||||||
|   build-master: |   build-master: | ||||||
|  | @ -572,3 +581,14 @@ workflows: | ||||||
|               - postgres-integration-test |               - postgres-integration-test | ||||||
|               - cache-server-test |               - cache-server-test | ||||||
|             filters: *filter-not-release-or-master |             filters: *filter-not-release-or-master | ||||||
|  |         - store-build-artifacts: | ||||||
|  |             requires: | ||||||
|  |               - build | ||||||
|  |               - test-backend | ||||||
|  |               - test-frontend | ||||||
|  |               - codespell | ||||||
|  |               - gometalinter | ||||||
|  |               - mysql-integration-test | ||||||
|  |               - postgres-integration-test | ||||||
|  |               - cache-server-test | ||||||
|  |             filters: *filter-not-release-or-master | ||||||
|  |  | ||||||
							
								
								
									
										45
									
								
								build.go
								
								
								
								
							
							
						
						
									
										45
									
								
								build.go
								
								
								
								
							|  | @ -48,6 +48,7 @@ var ( | ||||||
| 	enterprise            bool     = false | 	enterprise            bool     = false | ||||||
| 	skipRpmGen            bool     = false | 	skipRpmGen            bool     = false | ||||||
| 	skipDebGen            bool     = false | 	skipDebGen            bool     = false | ||||||
|  | 	printGenVersion       bool     = false | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func main() { | func main() { | ||||||
|  | @ -71,6 +72,7 @@ func main() { | ||||||
| 	flag.BoolVar(&isDev, "dev", isDev, "optimal for development, skips certain steps") | 	flag.BoolVar(&isDev, "dev", isDev, "optimal for development, skips certain steps") | ||||||
| 	flag.BoolVar(&skipRpmGen, "skipRpm", skipRpmGen, "skip rpm package generation (default: false)") | 	flag.BoolVar(&skipRpmGen, "skipRpm", skipRpmGen, "skip rpm package generation (default: false)") | ||||||
| 	flag.BoolVar(&skipDebGen, "skipDeb", skipDebGen, "skip deb package generation (default: false)") | 	flag.BoolVar(&skipDebGen, "skipDeb", skipDebGen, "skip deb package generation (default: false)") | ||||||
|  | 	flag.BoolVar(&printGenVersion, "gen-version", printGenVersion, "generate Grafana version and output (default: false)") | ||||||
| 	flag.Parse() | 	flag.Parse() | ||||||
| 
 | 
 | ||||||
| 	buildId = shortenBuildId(buildIdRaw) | 	buildId = shortenBuildId(buildIdRaw) | ||||||
|  | @ -81,6 +83,11 @@ func main() { | ||||||
| 		pkgArch = goarch | 		pkgArch = goarch | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	if printGenVersion { | ||||||
|  | 		printGeneratedVersion() | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	log.Printf("Version: %s, Linux Version: %s, Package Iteration: %s\n", version, linuxPackageVersion, linuxPackageIteration) | 	log.Printf("Version: %s, Linux Version: %s, Package Iteration: %s\n", version, linuxPackageVersion, linuxPackageIteration) | ||||||
| 
 | 
 | ||||||
| 	if flag.NArg() == 0 { | 	if flag.NArg() == 0 { | ||||||
|  | @ -221,6 +228,7 @@ func readVersionFromPackageJson() { | ||||||
| 
 | 
 | ||||||
| type linuxPackageOptions struct { | type linuxPackageOptions struct { | ||||||
| 	packageType            string | 	packageType            string | ||||||
|  | 	packageArch            string | ||||||
| 	homeDir                string | 	homeDir                string | ||||||
| 	binPath                string | 	binPath                string | ||||||
| 	serverBinPath          string | 	serverBinPath          string | ||||||
|  | @ -241,14 +249,14 @@ type linuxPackageOptions struct { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func createDebPackages() { | func createDebPackages() { | ||||||
| 	previousPkgArch := pkgArch | 	debPkgArch := pkgArch | ||||||
| 	if pkgArch == "armv7" { | 	if pkgArch == "armv7" || pkgArch == "armv6" { | ||||||
| 		pkgArch = "armhf" | 		debPkgArch = "armhf" | ||||||
| 	} else if pkgArch == "armv6" { |  | ||||||
| 		pkgArch = "armel" |  | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
| 	createPackage(linuxPackageOptions{ | 	createPackage(linuxPackageOptions{ | ||||||
| 		packageType:            "deb", | 		packageType:            "deb", | ||||||
|  | 		packageArch:            debPkgArch, | ||||||
| 		homeDir:                "/usr/share/grafana", | 		homeDir:                "/usr/share/grafana", | ||||||
| 		binPath:                "/usr/sbin", | 		binPath:                "/usr/sbin", | ||||||
| 		configDir:              "/etc/grafana", | 		configDir:              "/etc/grafana", | ||||||
|  | @ -264,19 +272,19 @@ func createDebPackages() { | ||||||
| 
 | 
 | ||||||
| 		depends: []string{"adduser", "libfontconfig"}, | 		depends: []string{"adduser", "libfontconfig"}, | ||||||
| 	}) | 	}) | ||||||
| 	pkgArch = previousPkgArch |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func createRpmPackages() { | func createRpmPackages() { | ||||||
| 	previousPkgArch := pkgArch | 	rpmPkgArch := pkgArch | ||||||
| 	switch { | 	switch { | ||||||
| 	case pkgArch == "armv7": | 	case pkgArch == "armv7": | ||||||
| 		pkgArch = "armhfp" | 		rpmPkgArch = "armhfp" | ||||||
| 	case pkgArch == "arm64": | 	case pkgArch == "arm64": | ||||||
| 		pkgArch = "aarch64" | 		rpmPkgArch = "aarch64" | ||||||
| 	} | 	} | ||||||
| 	createPackage(linuxPackageOptions{ | 	createPackage(linuxPackageOptions{ | ||||||
| 		packageType:            "rpm", | 		packageType:            "rpm", | ||||||
|  | 		packageArch:            rpmPkgArch, | ||||||
| 		homeDir:                "/usr/share/grafana", | 		homeDir:                "/usr/share/grafana", | ||||||
| 		binPath:                "/usr/sbin", | 		binPath:                "/usr/sbin", | ||||||
| 		configDir:              "/etc/grafana", | 		configDir:              "/etc/grafana", | ||||||
|  | @ -292,7 +300,6 @@ func createRpmPackages() { | ||||||
| 
 | 
 | ||||||
| 		depends: []string{"/sbin/service", "fontconfig", "freetype", "urw-fonts"}, | 		depends: []string{"/sbin/service", "fontconfig", "freetype", "urw-fonts"}, | ||||||
| 	}) | 	}) | ||||||
| 	pkgArch = previousPkgArch |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func createLinuxPackages() { | func createLinuxPackages() { | ||||||
|  | @ -351,6 +358,10 @@ func createPackage(options linuxPackageOptions) { | ||||||
| 		name += "-enterprise" | 		name += "-enterprise" | ||||||
| 		args = append(args, "--replaces", "grafana") | 		args = append(args, "--replaces", "grafana") | ||||||
| 	} | 	} | ||||||
|  | 	fmt.Printf("pkgArch is set to '%s', generated arch is '%s'\n", pkgArch, options.packageArch) | ||||||
|  | 	if pkgArch == "armv6" { | ||||||
|  | 		name += "-rpi" | ||||||
|  | 	} | ||||||
| 	args = append(args, "--name", name) | 	args = append(args, "--name", name) | ||||||
| 
 | 
 | ||||||
| 	description := "Grafana" | 	description := "Grafana" | ||||||
|  | @ -371,8 +382,8 @@ func createPackage(options linuxPackageOptions) { | ||||||
| 		args = append(args, "--deb-no-default-config-files") | 		args = append(args, "--deb-no-default-config-files") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if pkgArch != "" { | 	if options.packageArch != "" { | ||||||
| 		args = append(args, "-a", pkgArch) | 		args = append(args, "-a", options.packageArch) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if linuxPackageIteration != "" { | 	if linuxPackageIteration != "" { | ||||||
|  | @ -437,6 +448,16 @@ func setup() { | ||||||
| 	runPrint("go", "install", "-v", "./pkg/cmd/grafana-server") | 	runPrint("go", "install", "-v", "./pkg/cmd/grafana-server") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func printGeneratedVersion() { | ||||||
|  | 	var genVersion string | ||||||
|  | 	if includeBuildId { | ||||||
|  | 		genVersion = fmt.Sprintf("%v-%v", linuxPackageVersion, linuxPackageIteration) | ||||||
|  | 	} else { | ||||||
|  | 		genVersion = version | ||||||
|  | 	} | ||||||
|  | 	fmt.Print(genVersion) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func test(pkg string) { | func test(pkg string) { | ||||||
| 	setBuildEnv() | 	setBuildEnv() | ||||||
| 	runPrint("go", "test", "-short", "-timeout", "60s", pkg) | 	runPrint("go", "test", "-short", "-timeout", "60s", pkg) | ||||||
|  |  | ||||||
|  | @ -8,6 +8,7 @@ set -e | ||||||
| 
 | 
 | ||||||
| EXTRA_OPTS="$@" | EXTRA_OPTS="$@" | ||||||
| 
 | 
 | ||||||
|  | CCARMV6=/opt/rpi-tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc | ||||||
| CCARMV7=arm-linux-gnueabihf-gcc | CCARMV7=arm-linux-gnueabihf-gcc | ||||||
| CCARM64=aarch64-linux-gnu-gcc | CCARM64=aarch64-linux-gnu-gcc | ||||||
| CCOSX64=/tmp/osxcross/target/bin/o64-clang | CCOSX64=/tmp/osxcross/target/bin/o64-clang | ||||||
|  | @ -29,10 +30,18 @@ else | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| echo "Build arguments: $OPT" | echo "Build arguments: $OPT" | ||||||
|  | echo "current dir: $(pwd)" | ||||||
|  | 
 | ||||||
|  | if [ -d "dist" ]; then | ||||||
|  |   rm -rf dist | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | mkdir dist | ||||||
|  | go run build.go -gen-version ${OPT} > dist/grafana.version | ||||||
| 
 | 
 | ||||||
| # build only amd64 for enterprise | # build only amd64 for enterprise | ||||||
| if echo "$EXTRA_OPTS" | grep -vq enterprise ; then | if echo "$EXTRA_OPTS" | grep -vq enterprise ; then | ||||||
| go run build.go -goarch armv6 -cc ${CCARMV7} ${OPT} build |   go run build.go -goarch armv6 -cc ${CCARMV6} ${OPT} build | ||||||
|   go run build.go -goarch armv7 -cc ${CCARMV7} ${OPT} build |   go run build.go -goarch armv7 -cc ${CCARMV7} ${OPT} build | ||||||
|   go run build.go -goarch arm64 -cc ${CCARM64} ${OPT} build |   go run build.go -goarch arm64 -cc ${CCARM64} ${OPT} build | ||||||
|   go run build.go -goos darwin -cc ${CCOSX64} ${OPT} build |   go run build.go -goos darwin -cc ${CCOSX64} ${OPT} build | ||||||
|  | @ -45,12 +54,6 @@ CC=${CCX64} go run build.go ${OPT} build | ||||||
| 
 | 
 | ||||||
| yarn install --pure-lockfile --no-progress | yarn install --pure-lockfile --no-progress | ||||||
| 
 | 
 | ||||||
| echo "current dir: $(pwd)" |  | ||||||
| 
 |  | ||||||
| if [ -d "dist" ]; then |  | ||||||
|   rm -rf dist |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ "$CIRCLE_TAG" != "" ]; then | if [ "$CIRCLE_TAG" != "" ]; then | ||||||
|   echo "Building frontend and packaging from tag $CIRCLE_TAG" |   echo "Building frontend and packaging from tag $CIRCLE_TAG" | ||||||
| else | else | ||||||
|  |  | ||||||
|  | @ -8,6 +8,7 @@ set -e | ||||||
| 
 | 
 | ||||||
| EXTRA_OPTS="$@" | EXTRA_OPTS="$@" | ||||||
| 
 | 
 | ||||||
|  | CCARMV6=/opt/rpi-tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc | ||||||
| CCARMV7=arm-linux-gnueabihf-gcc | CCARMV7=arm-linux-gnueabihf-gcc | ||||||
| CCARM64=aarch64-linux-gnu-gcc | CCARM64=aarch64-linux-gnu-gcc | ||||||
| CCX64=/tmp/x86_64-centos6-linux-gnu/bin/x86_64-centos6-linux-gnu-gcc | CCX64=/tmp/x86_64-centos6-linux-gnu/bin/x86_64-centos6-linux-gnu-gcc | ||||||
|  | @ -26,9 +27,18 @@ else | ||||||
|   OPT="-buildId=${CIRCLE_WORKFLOW_ID} ${EXTRA_OPTS}" |   OPT="-buildId=${CIRCLE_WORKFLOW_ID} ${EXTRA_OPTS}" | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| echo "Build arguments: $OPT" |  | ||||||
| 
 | 
 | ||||||
| go run build.go -goarch armv6 -cc ${CCARMV7} ${OPT} build | echo "Build arguments: $OPT" | ||||||
|  | echo "current dir: $(pwd)" | ||||||
|  | 
 | ||||||
|  | if [ -d "dist" ]; then | ||||||
|  |   rm -rf dist | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | mkdir dist | ||||||
|  | go run build.go -gen-version ${OPT} > dist/grafana.version | ||||||
|  | 
 | ||||||
|  | go run build.go -goarch armv6 -cc ${CCARMV6} ${OPT} build | ||||||
| go run build.go -goarch armv7 -cc ${CCARMV7} ${OPT} build | go run build.go -goarch armv7 -cc ${CCARMV7} ${OPT} build | ||||||
| go run build.go -goarch arm64 -cc ${CCARM64} ${OPT} build | go run build.go -goarch arm64 -cc ${CCARM64} ${OPT} build | ||||||
| 
 | 
 | ||||||
|  | @ -36,12 +46,6 @@ CC=${CCX64} go run build.go ${OPT} build | ||||||
| 
 | 
 | ||||||
| yarn install --pure-lockfile --no-progress | yarn install --pure-lockfile --no-progress | ||||||
| 
 | 
 | ||||||
| echo "current dir: $(pwd)" |  | ||||||
| 
 |  | ||||||
| if [ -d "dist" ]; then |  | ||||||
|   rm -rf dist |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| echo "Building frontend" | echo "Building frontend" | ||||||
| go run build.go ${OPT} build-frontend | go run build.go ${OPT} build-frontend | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -103,7 +103,8 @@ RUN apt-get update   && \ | ||||||
|       | tee /etc/apt/sources.list.d/yarn.list                           && \ |       | tee /etc/apt/sources.list.d/yarn.list                           && \ | ||||||
|     apt-get update && apt-get install --no-install-recommends yarn      && \ |     apt-get update && apt-get install --no-install-recommends yarn      && \ | ||||||
|     curl -L https://storage.googleapis.com/golang/go${GOVERSION}.linux-amd64.tar.gz \ |     curl -L https://storage.googleapis.com/golang/go${GOVERSION}.linux-amd64.tar.gz \ | ||||||
|       | tar -xz -C /usr/local |       | tar -xz -C /usr/local && \ | ||||||
|  |     git clone https://github.com/raspberrypi/tools.git /opt/rpi-tools --depth=1 | ||||||
| 
 | 
 | ||||||
| RUN apt-get install -y                           \ | RUN apt-get install -y                           \ | ||||||
|         gcc libc-dev make && \ |         gcc libc-dev make && \ | ||||||
|  | @ -111,4 +112,4 @@ RUN apt-get install -y                           \ | ||||||
|     curl -sSL https://get.rvm.io | bash -s stable && \ |     curl -sSL https://get.rvm.io | bash -s stable && \ | ||||||
|     /bin/bash -l -c "rvm requirements && rvm install 2.2 && gem install -N fpm" |     /bin/bash -l -c "rvm requirements && rvm install 2.2 && gem install -N fpm" | ||||||
| 
 | 
 | ||||||
| ADD ./bootstrap.sh /tmp/bootstrap.sh | ADD ./bootstrap.sh /tmp/bootstrap.sh | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue