Просмотр исходного кода

build: imported latest changes from grafana-docker.

Leonard Gram 7 лет назад
Родитель
Сommit
580e2c36d1

+ 3 - 4
.circleci/config.yml

@@ -182,7 +182,7 @@ jobs:
           paths:
             - dist/grafana*
 
-  build-docker:
+  grafana-docker-master:
     docker:
       - image: docker:stable-git
     steps:
@@ -191,9 +191,8 @@ jobs:
           at: .
       - setup_remote_docker
       - run: docker info
-      - run: echo $GRAFANA_VERSION
       - run: cp dist/grafana-latest.linux-x64.tar.gz packaging/docker
-      - run: cd packaging/docker && ./build.sh ${GRAFANA_VERSION}
+      - run: cd packaging/docker && ./build-deploy.sh "grafana-docker-${CIRCLE_SHA1}"
 
   build-enterprise:
     docker:
@@ -362,7 +361,7 @@ workflows:
             filters: *filter-not-release-or-master
         - postgres-integration-test:
             filters: *filter-not-release-or-master
-        - build-docker:
+        - grafana-docker-master:
             requires:
               - build
               - test-backend

+ 13 - 0
packaging/docker/build-deploy.sh

@@ -0,0 +1,13 @@
+#!/bin/sh
+
+_grafana_version=$1
+./build.sh "$_grafana_version"
+docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
+
+#./push_to_docker_hub.sh "$_grafana_version"
+echo "Would have deployed $_grafana_version"
+
+if echo "$_grafana_version" | grep -q "^master-"; then
+  apk add --no-cache curl
+  ./deploy_to_k8s.sh "grafana/grafana-dev:$_grafana_version"
+fi

+ 20 - 13
packaging/docker/build.sh

@@ -1,21 +1,28 @@
 #!/bin/sh
 
 _grafana_tag=$1
-_grafana_version=$(echo ${_grafana_tag} | cut -d "v" -f 2)
-_docker_repo=${2:-grafana/grafana}
 
+# If the tag starts with v, treat this as a official release
+if echo "$_grafana_tag" | grep -q "^v"; then
+	_grafana_version=$(echo "${_grafana_tag}" | cut -d "v" -f 2)
+	_grafana_url="https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-${_grafana_version}.linux-amd64.tar.gz"
+	_docker_repo=${2:-grafana/grafana}
+else
+	_grafana_version=$_grafana_tag
+	_grafana_url="https://s3-us-west-2.amazonaws.com/grafana-releases/master/grafana-${_grafana_version}.linux-x64.tar.gz"
+	_docker_repo=${2:-grafana/grafana-dev}
+fi
+
+echo "Building ${_docker_repo}:${_grafana_version} from ${_grafana_url}"
 
-echo ${_grafana_version}
+docker build \
+	--build-arg GRAFANA_URL="${_grafana_url}" \
+	--tag "${_docker_repo}:${_grafana_version}" \
+	--no-cache=true .
 
-if [ "$_grafana_version" != "" ]; then
-	echo "Building version ${_grafana_version}"
-	docker build \
-		--tag "${_docker_repo}:${_grafana_version}" \
-		--no-cache=true .
-	docker tag ${_docker_repo}:${_grafana_version} ${_docker_repo}:latest
+# Tag as 'latest' for official release; otherwise tag as grafana/grafana:master
+if echo "$_grafana_tag" | grep -q "^v"; then
+	docker tag "${_docker_repo}:${_grafana_version}" "${_docker_repo}:latest"
 else
-	echo "Building latest for master"
-	docker build \
-		--tag "grafana/grafana:master" \
-		.
+	docker tag "${_docker_repo}:${_grafana_version}" "grafana/grafana:master"
 fi

+ 6 - 0
packaging/docker/deploy_to_k8s.sh

@@ -0,0 +1,6 @@
+#!/bin/sh
+
+curl -s --header "Content-Type: application/json" \
+     --data "{\"build_parameters\": {\"CIRCLE_JOB\": \"deploy\", \"IMAGE_NAMES\": \"$1\"}}" \
+     --request POST \
+     https://circleci.com/api/v1.1/project/github/raintank/deployment_tools/tree/master?circle-token=$CIRCLE_TOKEN

+ 14 - 8
packaging/docker/push_to_docker_hub.sh

@@ -1,16 +1,22 @@
 #!/bin/sh
 
 _grafana_tag=$1
-_grafana_version=$(echo ${_grafana_tag} | cut -d "v" -f 2)
 
-if [ "$_grafana_version" != "" ]; then
-	echo "pushing grafana/grafana:${_grafana_version}"
-	docker push grafana/grafana:${_grafana_version}
+# If the tag starts with v, treat this as a official release
+if echo "$_grafana_tag" | grep -q "^v"; then
+	_grafana_version=$(echo "${_grafana_tag}" | cut -d "v" -f 2)
+	_docker_repo=${2:-grafana/grafana}
+else
+	_grafana_version=$_grafana_tag
+	_docker_repo=${2:-grafana/grafana-dev}
+fi
+
+echo "pushing ${_docker_repo}:${_grafana_version}"
+docker push "${_docker_repo}:${_grafana_version}"
 
-	if echo "$_grafana_version" | grep -viqF beta; then
-		echo "pushing grafana/grafana:latest"
-		docker push grafana/grafana:latest
-	fi
+if echo "$_grafana_tag" | grep -q "^v"; then
+	echo "pushing ${_docker_repo}:latest"
+	docker push "${_docker_repo}:latest"
 else
 	echo "pushing grafana/grafana:master"
 	docker push grafana/grafana:master

+ 4 - 4
packaging/docker/run.sh

@@ -46,11 +46,11 @@ if [ ! -z ${GF_AWS_PROFILES+x} ]; then
     chmod 600 "$GF_PATHS_HOME/.aws/credentials"
 fi
 
-# Convert all environment variables with names ending in _FILE into the content of
-# the file that they point at and use the name without the trailing _FILE.
+# Convert all environment variables with names ending in __FILE into the content of
+# the file that they point at and use the name without the trailing __FILE.
 # This can be used to carry in Docker secrets.
-for VAR_NAME in $(env | grep '^GF_[^=]\+_FILE=.\+' | sed -r "s/([^=]*)_FILE=.*/\1/g"); do
-    VAR_NAME_FILE="$VAR_NAME"_FILE
+for VAR_NAME in $(env | grep '^GF_[^=]\+__FILE=.\+' | sed -r "s/([^=]*)__FILE=.*/\1/g"); do
+    VAR_NAME_FILE="$VAR_NAME"__FILE
     if [ "${!VAR_NAME}" ]; then
         echo >&2 "ERROR: Both $VAR_NAME and $VAR_NAME_FILE are set (but are exclusive)"
         exit 1