From 1339ce80f54e806034c6089a1e7eaddb3b970a4c Mon Sep 17 00:00:00 2001 From: bergquist Date: Mon, 23 Jan 2017 15:09:18 +0100 Subject: [PATCH] tech(build): moves builds script into main repo --- circle.yml | 21 +++++++++++++++++++- scripts/build/build.sh | 34 ++++++++++++++++++++++++++++++++ scripts/build/build_container.sh | 14 +++++++++++++ scripts/build/deploy.sh | 8 ++++++++ scripts/build/sign_expect | 12 +++++++++++ scripts/build/sign_packages.sh | 9 +++++++++ 6 files changed, 97 insertions(+), 1 deletion(-) create mode 100755 scripts/build/build.sh create mode 100755 scripts/build/build_container.sh create mode 100755 scripts/build/deploy.sh create mode 100755 scripts/build/sign_expect create mode 100755 scripts/build/sign_packages.sh diff --git a/circle.yml b/circle.yml index 7930ab1b875..017c26a0d3a 100644 --- a/circle.yml +++ b/circle.yml @@ -1,6 +1,10 @@ machine: node: version: 6.9.2 + python: + version: 2.7.3 + services: + - docker environment: GOPATH: "/home/ubuntu/.go_workspace" ORG_PATH: "github.com/grafana" @@ -13,6 +17,8 @@ machine: - sudo tar -C /usr/local -xzf download/$GODIST dependencies: + cache_directories: + - "~/docker" override: - rm -rf ${GOPATH}/src/${REPO_PATH} - mkdir -p ${GOPATH}/src/${ORG_PATH} @@ -22,7 +28,20 @@ test: override: - bash scripts/circle-test.sh -# deployment: +deployment: + gh_branch: + branch: new_deploy + owner: grafana + commands: + - pip install awscli + - ./scripts/build/build_container.sh + - ./scripts/build/deploy.sh + gh_tag: + tag: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/ + owner: grafana + commands: + - echo lets release stuff! + #- ./scripts/build/sign_packages.sh # master: # branch: master # owner: grafana diff --git a/scripts/build/build.sh b/scripts/build/build.sh new file mode 100755 index 00000000000..bfa90bfe6ed --- /dev/null +++ b/scripts/build/build.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# +# This script is executed from within the container. +# + +GOPATH=/go +REPO_PATH=$GOPATH/src/github.com/grafana/grafana + +mkdir -p /go/src/github.com/grafana +cd /go/src/github.com/grafana + +echo "Grafana branch!!" +echo $GRAFANA_BRANCH +echo "GRAFANA BRANCH: ${GRAFANA_BRANCH}" + +git clone --depth 1 https://github.com/grafana/grafana.git -b $GRAFANA_BRANCH + +cd $REPO_PATH + +go run build.go build +npm install -g yarn +yarn install --pure-lockfile + +source /etc/profile.d/rvm.sh +rvm use 2.1.9 --default + +gem install fpm -v 1.4 + +go run build.go package latest + +cp dist/* /tmp/dist/ + + diff --git a/scripts/build/build_container.sh b/scripts/build/build_container.sh new file mode 100755 index 00000000000..95e230b40fc --- /dev/null +++ b/scripts/build/build_container.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +docker info && docker version +mkdir -p ~/docker + +# try to load docker container from cache +if [[ -e ~/docker/centos.tar ]]; then + docker load -i ~/docker/centos.tar; +else + docker build --rm=false --tag "grafana/buildcontainer" . + + # save docker container so we dont have to recreate it next run + docker save grafana/buildcontainer > ~/docker/centos.tar; +fi diff --git a/scripts/build/deploy.sh b/scripts/build/deploy.sh new file mode 100755 index 00000000000..4a5879b9ac0 --- /dev/null +++ b/scripts/build/deploy.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +mkdir -p dist + +docker run -i -t --name gfbuild \ + -v $(pwd)/dist:/tmp/dist \ + -e "GRAFANA_BRANCH=${GRAFANA_BRANCH}" \ + grafana/buildcontainer diff --git a/scripts/build/sign_expect b/scripts/build/sign_expect new file mode 100755 index 00000000000..923f2d0694e --- /dev/null +++ b/scripts/build/sign_expect @@ -0,0 +1,12 @@ +#!/usr/bin/expect -f +# wrapper to make rpm --sign be non-interactive +# passwd is 1st arg, file to sign is 2nd +#send_user «$argv0 [lrange $argv 0 2]\n" +#set files [lrange $argv 1 $argc ] + +set password [lindex $argv 0] +set files [lindex $argv 1] +spawn rpm --addsign $files +expect "Enter pass phrase:" +send -- "$password\r" +expect eof diff --git a/scripts/build/sign_packages.sh b/scripts/build/sign_packages.sh new file mode 100755 index 00000000000..afd6b64addd --- /dev/null +++ b/scripts/build/sign_packages.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +git clone git@github.com:torkelo/private.git ~/private-repo + +gpg --allow-secret-key-import --import ~/private-repo/signing/private.key + +cp rpmmacros ~/.rpmmacros + +./sign_expect $GPG_KEY_PASSWORD dist/*.rpm