ソースを参照

tech(build): moves builds script into main repo

bergquist 9 年 前
コミット
1339ce80f5

+ 20 - 1
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

+ 34 - 0
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/
+
+

+ 14 - 0
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

+ 8 - 0
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

+ 12 - 0
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

+ 9 - 0
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