Skip to content

Commit db269a2

Browse files
authored
Merge pull request grafana/phlare#89 from grafana/20220715_deploy-main-to-dev
Deploy main image build to dev cluster
2 parents 70657ea + d31656e commit db269a2

File tree

2 files changed

+44
-5
lines changed

2 files changed

+44
-5
lines changed

.github/workflows/test.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ jobs:
7979
id: buildx
8080
uses: docker/setup-buildx-action@v1
8181
- name: Build image
82-
run: make docker-image/fire/build
82+
run: make docker-image/fire/build "BUILDX_ARGS=--cache-from=type=gha --cache-to=type=gha"
8383

84-
build-and-push-image:
84+
build-push-and-deploy-image:
8585
if: github.event_name == 'push' && github.repository == 'grafana/fire'
8686
runs-on: ubuntu-latest
8787
steps:
@@ -103,4 +103,12 @@ jobs:
103103
username: _json_key
104104
password: ${{ secrets.GCR_JSON_KEY }}
105105
- name: Build & push multi-arch image
106-
run: make docker-image/fire/push IMAGE_PLATFORM=linux/arm64/v8,linux/amd64
106+
id: build-push
107+
run: |
108+
make docker-image/fire/push "BUILDX_ARGS=--cache-from=type=gha --cache-to=type=gha"
109+
- name: Deploy to fire-dev-001
110+
run: |
111+
git config --global url."https://grafanabot:${{ secrets.GRAFANABOT_PAT }}@github.com/grafana/deployment_tools".insteadOf "https://github.com/grafana/deployment_tools"
112+
make docker-image/fire/deploy-dev-001
113+
env:
114+
GITHUB_TOKEN: ${{ secrets.GRAFANABOT_PAT }}

Makefile

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ LICENSE_IGNORE := -e /testdata/
1212
GO_TEST_FLAGS ?= -v -race -cover
1313

1414
IMAGE_PLATFORM = linux/amd64
15+
BUILDX_ARGS =
1516
GOPRIVATE=github.com/grafana/frostdb
1617

1718
# Boiler plate for building Docker containers.
@@ -21,10 +22,11 @@ IMAGE_PREFIX ?= us.gcr.io/kubernetes-dev/
2122
IMAGE_TAG ?= $(shell ./tools/image-tag)
2223
GIT_REVISION := $(shell git rev-parse --short HEAD)
2324
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
25+
GIT_LAST_COMMIT_DATE := $(shell git log -1 --date=raw --format=%cd | cut -d ' ' -f 1 | xargs -i date -d @{} -u +"%Y-%m-%dT%H:%M:%SZ")
2426

2527
# Build flags
2628
VPREFIX := github.com/grafana/fire/pkg/util/build
27-
GO_LDFLAGS := -X $(VPREFIX).Branch=$(GIT_BRANCH) -X $(VPREFIX).Version=$(IMAGE_TAG) -X $(VPREFIX).Revision=$(GIT_REVISION) -X $(VPREFIX).BuildUser=$(shell whoami)@$(shell hostname) -X $(VPREFIX).BuildDate=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
29+
GO_LDFLAGS := -X $(VPREFIX).Branch=$(GIT_BRANCH) -X $(VPREFIX).Version=$(IMAGE_TAG) -X $(VPREFIX).Revision=$(GIT_REVISION) -X $(VPREFIX).BuildDate=$(GIT_LAST_COMMIT_DATE)
2830
GO_FLAGS := -ldflags "-extldflags \"-static\" -s -w $(GO_LDFLAGS)" -tags netgo -mod=mod
2931

3032
.PHONY: help
@@ -101,7 +103,7 @@ check/go/mod: go/mod
101103

102104

103105
define docker_buildx
104-
docker buildx build $(1) --ssh default --platform $(IMAGE_PLATFORM) --build-arg=revision=$(GIT_REVISION) -t $(IMAGE_PREFIX)$(shell basename $(@D)) -t $(IMAGE_PREFIX)$(shell basename $(@D)):$(IMAGE_TAG) -f cmd/$(shell basename $(@D))/Dockerfile .
106+
docker buildx build $(1) --ssh default --platform $(IMAGE_PLATFORM) $(BUILDX_ARGS) --build-arg=revision=$(GIT_REVISION) -t $(IMAGE_PREFIX)$(shell basename $(@D)) -t $(IMAGE_PREFIX)$(shell basename $(@D)):$(IMAGE_TAG) -f cmd/$(shell basename $(@D))/Dockerfile .
105107
endef
106108

107109
define deploy
@@ -121,6 +123,31 @@ docker-image/fire/build:
121123
docker-image/fire/push:
122124
$(call docker_buildx,--push)
123125

126+
define UPDATER_CONFIG_JSON
127+
{
128+
"repo_name": "deployment_tools",
129+
"destination_branch": "master",
130+
"wait_for_ci": true,
131+
"wait_for_ci_branch_prefix": "automation/fire-dev-deploy",
132+
"wait_for_ci_timeout": "10m",
133+
"wait_for_ci_required_status": [
134+
"continuous-integration/drone/push"
135+
],
136+
"update_jsonnet_attribute_configs": [
137+
{
138+
"file_path": "ksonnet/environments/fire/dev-us-central-0.fire-dev-001/images.libsonnet",
139+
"jsonnet_key": "fire",
140+
"jsonnet_value": "$(IMAGE_PREFIX)fire:$(IMAGE_TAG)"
141+
}
142+
]
143+
}
144+
endef
145+
146+
.PHONY: docker-image/fire/deploy-dev-001
147+
docker-image/fire/deploy-dev-001: export CONFIG_JSON:=$(call UPDATER_CONFIG_JSON)
148+
docker-image/fire/deploy-dev-001: $(BIN)/updater
149+
$(BIN)/updater
150+
124151
.PHONY: clean
125152
clean: ## Delete intermediate build artifacts
126153
@# -X only removes untracked files, -d recurses into directories, -f actually removes files/dirs
@@ -174,6 +201,10 @@ $(BIN)/mage: Makefile go.mod
174201
@mkdir -p $(@D)
175202
GOBIN=$(abspath $(@D)) $(GO) install github.com/magefile/mage@v1.13.0
176203

204+
$(BIN)/updater: Makefile
205+
@mkdir -p $(@D)
206+
GOBIN=$(abspath $(@D)) GOPRIVATE=github.com/grafana/deployment_tools $(GO) install github.com/grafana/deployment_tools/drone/plugins/cmd/updater@d64d509
207+
177208
KIND_CLUSTER = fire-dev
178209

179210
.PHONY: helm/lint

0 commit comments

Comments
 (0)