From f89dd8165d809699ff72b58677c7a28c9c65dcb6 Mon Sep 17 00:00:00 2001 From: Robert Fratto Date: Tue, 5 Nov 2019 09:27:09 -0500 Subject: [PATCH] ci: fix drone deploy job The deploy job stopped working for some unknown reason. This commit fixes it by moving the deploy script to its own file. --- .drone/drone.jsonnet | 32 +- .drone/drone.yml | 894 +++++++++++++++++++++---------------------- tools/deploy.sh | 6 + 3 files changed, 468 insertions(+), 464 deletions(-) create mode 100755 tools/deploy.sh diff --git a/.drone/drone.jsonnet b/.drone/drone.jsonnet index 764fc20bc5e3..af6530467597 100644 --- a/.drone/drone.jsonnet +++ b/.drone/drone.jsonnet @@ -43,7 +43,7 @@ local docker(arch, app) = { }, }; -local arch_image(arch,tags='') = { +local arch_image(arch, tags='') = { platform: { os: 'linux', arch: arch, @@ -59,8 +59,8 @@ local arch_image(arch,tags='') = { }], }; -local fluentbit() = pipeline('fluent-bit-amd64') + arch_image('amd64','latest,master') { - steps+: [ +local fluentbit() = pipeline('fluent-bit-amd64') + arch_image('amd64', 'latest,master') { + steps+: [ // dry run for everything that is not tag or master docker('amd64', 'fluent-bit') { depends_on: ['image-tag'], @@ -69,7 +69,7 @@ local fluentbit() = pipeline('fluent-bit-amd64') + arch_image('amd64','latest,ma dry_run: true, repo: 'grafana/fluent-bit-plugin-loki', }, - } + }, ] + [ // publish for tag or master docker('amd64', 'fluent-bit') { @@ -78,7 +78,7 @@ local fluentbit() = pipeline('fluent-bit-amd64') + arch_image('amd64','latest,ma settings+: { repo: 'grafana/fluent-bit-plugin-loki', }, - } + }, ], depends_on: ['check'], }; @@ -130,8 +130,8 @@ local manifest(apps) = pipeline('manifest') { local drone = [ pipeline('check') { workspace: { - base: "/src", - path: "loki" + base: '/src', + path: 'loki', }, steps: [ make('test', container=false) { depends_on: ['clone'] }, @@ -144,28 +144,28 @@ local drone = [ multiarch_image(arch) for arch in archs ] + [ - fluentbit() + fluentbit(), ] + [ manifest(['promtail', 'loki', 'loki-canary']) { trigger: condition('include').tagMaster, }, ] + [ - pipeline("deploy") { + pipeline('deploy') { trigger: condition('include').tagMaster, - depends_on: ["manifest"], + depends_on: ['manifest'], steps: [ { - name: "trigger", + name: 'trigger', image: 'grafana/loki-build-image:%s' % build_image_version, environment: { - CIRCLE_TOKEN: {from_secret: "circle_token"} + CIRCLE_TOKEN: { from_secret: 'circle_token' }, }, commands: [ - 'curl -s --header "Content-Type: application/json" --data "{\\"build_parameters\\": {\\"CIRCLE_JOB\\": \\"deploy\\", \\"IMAGE_NAMES\\": \\"$(make print-images)\\"}}" --request POST https://circleci.com/api/v1.1/project/github/raintank/deployment_tools/tree/master?circle-token=$CIRCLE_TOKEN' - ] - } + './tools/deploy.sh', + ], + }, ], - } + }, ]; { diff --git a/.drone/drone.yml b/.drone/drone.yml index c3dfacb6b19d..33508bb30b7e 100644 --- a/.drone/drone.yml +++ b/.drone/drone.yml @@ -1,502 +1,500 @@ kind: pipeline name: check steps: -- commands: - - make BUILD_IN_CONTAINER=false test - depends_on: - - clone - image: grafana/loki-build-image:0.7.4 - name: test -- commands: - - make BUILD_IN_CONTAINER=false lint - depends_on: - - clone - image: grafana/loki-build-image:0.7.4 - name: lint -- commands: - - make BUILD_IN_CONTAINER=false check-generated-files - depends_on: - - clone - image: grafana/loki-build-image:0.7.4 - name: check-generated-files -- commands: - - make BUILD_IN_CONTAINER=false check-mod - depends_on: - - clone - - test - - lint - image: grafana/loki-build-image:0.7.4 - name: check-mod + - commands: + - make BUILD_IN_CONTAINER=false test + depends_on: + - clone + image: grafana/loki-build-image:0.7.4 + name: test + - commands: + - make BUILD_IN_CONTAINER=false lint + depends_on: + - clone + image: grafana/loki-build-image:0.7.4 + name: lint + - commands: + - make BUILD_IN_CONTAINER=false check-generated-files + depends_on: + - clone + image: grafana/loki-build-image:0.7.4 + name: check-generated-files + - commands: + - make BUILD_IN_CONTAINER=false check-mod + depends_on: + - clone + - test + - lint + image: grafana/loki-build-image:0.7.4 + name: check-mod workspace: base: /src path: loki --- depends_on: -- check + - check kind: pipeline name: docker-amd64 platform: arch: amd64 os: linux steps: -- commands: - - apk add --no-cache bash git - - git fetch origin --tags - - echo $(./tools/image-tag)-amd64 > .tags - image: alpine - name: image-tag -- depends_on: - - image-tag - image: plugins/docker - name: build-loki-image - settings: - dockerfile: cmd/loki/Dockerfile - dry_run: true - password: - from_secret: docker_password - repo: grafana/loki - username: - from_secret: docker_username - when: - ref: - exclude: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: build-loki-canary-image - settings: - dockerfile: cmd/loki-canary/Dockerfile - dry_run: true - password: - from_secret: docker_password - repo: grafana/loki-canary - username: - from_secret: docker_username - when: - ref: - exclude: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: build-promtail-image - settings: - dockerfile: cmd/promtail/Dockerfile - dry_run: true - password: - from_secret: docker_password - repo: grafana/promtail - username: - from_secret: docker_username - when: - ref: - exclude: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: publish-loki-image - settings: - dockerfile: cmd/loki/Dockerfile - dry_run: false - password: - from_secret: docker_password - repo: grafana/loki - username: - from_secret: docker_username - when: - ref: - include: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: publish-loki-canary-image - settings: - dockerfile: cmd/loki-canary/Dockerfile - dry_run: false - password: - from_secret: docker_password - repo: grafana/loki-canary - username: - from_secret: docker_username - when: - ref: - include: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: publish-promtail-image - settings: - dockerfile: cmd/promtail/Dockerfile - dry_run: false - password: - from_secret: docker_password - repo: grafana/promtail - username: - from_secret: docker_username - when: - ref: - include: - - refs/heads/master - - refs/tags/v* + - commands: + - apk add --no-cache bash git + - git fetch origin --tags + - echo $(./tools/image-tag)-amd64 > .tags + image: alpine + name: image-tag + - depends_on: + - image-tag + image: plugins/docker + name: build-loki-image + settings: + dockerfile: cmd/loki/Dockerfile + dry_run: true + password: + from_secret: docker_password + repo: grafana/loki + username: + from_secret: docker_username + when: + ref: + exclude: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: build-loki-canary-image + settings: + dockerfile: cmd/loki-canary/Dockerfile + dry_run: true + password: + from_secret: docker_password + repo: grafana/loki-canary + username: + from_secret: docker_username + when: + ref: + exclude: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: build-promtail-image + settings: + dockerfile: cmd/promtail/Dockerfile + dry_run: true + password: + from_secret: docker_password + repo: grafana/promtail + username: + from_secret: docker_username + when: + ref: + exclude: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: publish-loki-image + settings: + dockerfile: cmd/loki/Dockerfile + dry_run: false + password: + from_secret: docker_password + repo: grafana/loki + username: + from_secret: docker_username + when: + ref: + include: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: publish-loki-canary-image + settings: + dockerfile: cmd/loki-canary/Dockerfile + dry_run: false + password: + from_secret: docker_password + repo: grafana/loki-canary + username: + from_secret: docker_username + when: + ref: + include: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: publish-promtail-image + settings: + dockerfile: cmd/promtail/Dockerfile + dry_run: false + password: + from_secret: docker_password + repo: grafana/promtail + username: + from_secret: docker_username + when: + ref: + include: + - refs/heads/master + - refs/tags/v* --- depends_on: -- check + - check kind: pipeline name: docker-arm64 platform: arch: arm64 os: linux steps: -- commands: - - apk add --no-cache bash git - - git fetch origin --tags - - echo $(./tools/image-tag)-arm64 > .tags - image: alpine - name: image-tag -- depends_on: - - image-tag - image: plugins/docker - name: build-loki-image - settings: - dockerfile: cmd/loki/Dockerfile - dry_run: true - password: - from_secret: docker_password - repo: grafana/loki - username: - from_secret: docker_username - when: - ref: - exclude: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: build-loki-canary-image - settings: - dockerfile: cmd/loki-canary/Dockerfile - dry_run: true - password: - from_secret: docker_password - repo: grafana/loki-canary - username: - from_secret: docker_username - when: - ref: - exclude: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: build-promtail-image - settings: - dockerfile: cmd/promtail/Dockerfile - dry_run: true - password: - from_secret: docker_password - repo: grafana/promtail - username: - from_secret: docker_username - when: - ref: - exclude: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: publish-loki-image - settings: - dockerfile: cmd/loki/Dockerfile - dry_run: false - password: - from_secret: docker_password - repo: grafana/loki - username: - from_secret: docker_username - when: - ref: - include: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: publish-loki-canary-image - settings: - dockerfile: cmd/loki-canary/Dockerfile - dry_run: false - password: - from_secret: docker_password - repo: grafana/loki-canary - username: - from_secret: docker_username - when: - ref: - include: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: publish-promtail-image - settings: - dockerfile: cmd/promtail/Dockerfile - dry_run: false - password: - from_secret: docker_password - repo: grafana/promtail - username: - from_secret: docker_username - when: - ref: - include: - - refs/heads/master - - refs/tags/v* + - commands: + - apk add --no-cache bash git + - git fetch origin --tags + - echo $(./tools/image-tag)-arm64 > .tags + image: alpine + name: image-tag + - depends_on: + - image-tag + image: plugins/docker + name: build-loki-image + settings: + dockerfile: cmd/loki/Dockerfile + dry_run: true + password: + from_secret: docker_password + repo: grafana/loki + username: + from_secret: docker_username + when: + ref: + exclude: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: build-loki-canary-image + settings: + dockerfile: cmd/loki-canary/Dockerfile + dry_run: true + password: + from_secret: docker_password + repo: grafana/loki-canary + username: + from_secret: docker_username + when: + ref: + exclude: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: build-promtail-image + settings: + dockerfile: cmd/promtail/Dockerfile + dry_run: true + password: + from_secret: docker_password + repo: grafana/promtail + username: + from_secret: docker_username + when: + ref: + exclude: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: publish-loki-image + settings: + dockerfile: cmd/loki/Dockerfile + dry_run: false + password: + from_secret: docker_password + repo: grafana/loki + username: + from_secret: docker_username + when: + ref: + include: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: publish-loki-canary-image + settings: + dockerfile: cmd/loki-canary/Dockerfile + dry_run: false + password: + from_secret: docker_password + repo: grafana/loki-canary + username: + from_secret: docker_username + when: + ref: + include: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: publish-promtail-image + settings: + dockerfile: cmd/promtail/Dockerfile + dry_run: false + password: + from_secret: docker_password + repo: grafana/promtail + username: + from_secret: docker_username + when: + ref: + include: + - refs/heads/master + - refs/tags/v* --- depends_on: -- check + - check kind: pipeline name: docker-arm platform: arch: arm os: linux steps: -- commands: - - apk add --no-cache bash git - - git fetch origin --tags - - echo $(./tools/image-tag)-arm > .tags - image: alpine - name: image-tag -- depends_on: - - image-tag - image: plugins/docker - name: build-loki-image - settings: - dockerfile: cmd/loki/Dockerfile - dry_run: true - password: - from_secret: docker_password - repo: grafana/loki - username: - from_secret: docker_username - when: - ref: - exclude: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: build-loki-canary-image - settings: - dockerfile: cmd/loki-canary/Dockerfile - dry_run: true - password: - from_secret: docker_password - repo: grafana/loki-canary - username: - from_secret: docker_username - when: - ref: - exclude: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: build-promtail-image - settings: - dockerfile: cmd/promtail/Dockerfile - dry_run: true - password: - from_secret: docker_password - repo: grafana/promtail - username: - from_secret: docker_username - when: - ref: - exclude: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: publish-loki-image - settings: - dockerfile: cmd/loki/Dockerfile - dry_run: false - password: - from_secret: docker_password - repo: grafana/loki - username: - from_secret: docker_username - when: - ref: - include: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: publish-loki-canary-image - settings: - dockerfile: cmd/loki-canary/Dockerfile - dry_run: false - password: - from_secret: docker_password - repo: grafana/loki-canary - username: - from_secret: docker_username - when: - ref: - include: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: publish-promtail-image - settings: - dockerfile: cmd/promtail/Dockerfile - dry_run: false - password: - from_secret: docker_password - repo: grafana/promtail - username: - from_secret: docker_username - when: - ref: - include: - - refs/heads/master - - refs/tags/v* + - commands: + - apk add --no-cache bash git + - git fetch origin --tags + - echo $(./tools/image-tag)-arm > .tags + image: alpine + name: image-tag + - depends_on: + - image-tag + image: plugins/docker + name: build-loki-image + settings: + dockerfile: cmd/loki/Dockerfile + dry_run: true + password: + from_secret: docker_password + repo: grafana/loki + username: + from_secret: docker_username + when: + ref: + exclude: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: build-loki-canary-image + settings: + dockerfile: cmd/loki-canary/Dockerfile + dry_run: true + password: + from_secret: docker_password + repo: grafana/loki-canary + username: + from_secret: docker_username + when: + ref: + exclude: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: build-promtail-image + settings: + dockerfile: cmd/promtail/Dockerfile + dry_run: true + password: + from_secret: docker_password + repo: grafana/promtail + username: + from_secret: docker_username + when: + ref: + exclude: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: publish-loki-image + settings: + dockerfile: cmd/loki/Dockerfile + dry_run: false + password: + from_secret: docker_password + repo: grafana/loki + username: + from_secret: docker_username + when: + ref: + include: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: publish-loki-canary-image + settings: + dockerfile: cmd/loki-canary/Dockerfile + dry_run: false + password: + from_secret: docker_password + repo: grafana/loki-canary + username: + from_secret: docker_username + when: + ref: + include: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: publish-promtail-image + settings: + dockerfile: cmd/promtail/Dockerfile + dry_run: false + password: + from_secret: docker_password + repo: grafana/promtail + username: + from_secret: docker_username + when: + ref: + include: + - refs/heads/master + - refs/tags/v* --- depends_on: -- check + - check kind: pipeline name: fluent-bit-amd64 platform: arch: amd64 os: linux steps: -- commands: - - apk add --no-cache bash git - - git fetch origin --tags - - echo $(./tools/image-tag)-amd64 > .tags - - echo ",latest,master" >> .tags - image: alpine - name: image-tag -- depends_on: - - image-tag - image: plugins/docker - name: build-fluent-bit-image - settings: - dockerfile: cmd/fluent-bit/Dockerfile - dry_run: true - password: - from_secret: docker_password - repo: grafana/fluent-bit-plugin-loki - username: - from_secret: docker_username - when: - ref: - exclude: - - refs/heads/master - - refs/tags/v* -- depends_on: - - image-tag - image: plugins/docker - name: publish-fluent-bit-image - settings: - dockerfile: cmd/fluent-bit/Dockerfile - dry_run: false - password: - from_secret: docker_password - repo: grafana/fluent-bit-plugin-loki - username: - from_secret: docker_username - when: - ref: - include: - - refs/heads/master - - refs/tags/v* + - commands: + - apk add --no-cache bash git + - git fetch origin --tags + - echo $(./tools/image-tag)-amd64 > .tags + - echo ",latest,master" >> .tags + image: alpine + name: image-tag + - depends_on: + - image-tag + image: plugins/docker + name: build-fluent-bit-image + settings: + dockerfile: cmd/fluent-bit/Dockerfile + dry_run: true + password: + from_secret: docker_password + repo: grafana/fluent-bit-plugin-loki + username: + from_secret: docker_username + when: + ref: + exclude: + - refs/heads/master + - refs/tags/v* + - depends_on: + - image-tag + image: plugins/docker + name: publish-fluent-bit-image + settings: + dockerfile: cmd/fluent-bit/Dockerfile + dry_run: false + password: + from_secret: docker_password + repo: grafana/fluent-bit-plugin-loki + username: + from_secret: docker_username + when: + ref: + include: + - refs/heads/master + - refs/tags/v* --- depends_on: -- docker-amd64 -- docker-arm64 -- docker-arm + - docker-amd64 + - docker-arm64 + - docker-arm kind: pipeline name: manifest steps: -- depends_on: - - clone - image: plugins/manifest - name: manifest-promtail - settings: - ignore_missing: true - password: - from_secret: docker_password - spec: .drone/docker-manifest.tmpl - target: promtail - username: - from_secret: docker_username -- depends_on: - - clone - image: plugins/manifest - name: manifest-loki - settings: - ignore_missing: true - password: - from_secret: docker_password - spec: .drone/docker-manifest.tmpl - target: loki - username: - from_secret: docker_username -- depends_on: - - clone - image: plugins/manifest - name: manifest-loki-canary - settings: - ignore_missing: true - password: - from_secret: docker_password - spec: .drone/docker-manifest.tmpl - target: loki-canary - username: - from_secret: docker_username + - depends_on: + - clone + image: plugins/manifest + name: manifest-promtail + settings: + ignore_missing: true + password: + from_secret: docker_password + spec: .drone/docker-manifest.tmpl + target: promtail + username: + from_secret: docker_username + - depends_on: + - clone + image: plugins/manifest + name: manifest-loki + settings: + ignore_missing: true + password: + from_secret: docker_password + spec: .drone/docker-manifest.tmpl + target: loki + username: + from_secret: docker_username + - depends_on: + - clone + image: plugins/manifest + name: manifest-loki-canary + settings: + ignore_missing: true + password: + from_secret: docker_password + spec: .drone/docker-manifest.tmpl + target: loki-canary + username: + from_secret: docker_username trigger: ref: include: - - refs/heads/master - - refs/tags/v* + - refs/heads/master + - refs/tags/v* --- depends_on: -- manifest + - manifest kind: pipeline name: deploy steps: -- commands: - - 'curl -s --header "Content-Type: application/json" --data "{\"build_parameters\": - {\"CIRCLE_JOB\": \"deploy\", \"IMAGE_NAMES\": \"$(make print-images)\"}}" --request - POST https://circleci.com/api/v1.1/project/github/raintank/deployment_tools/tree/master?circle-token=$CIRCLE_TOKEN' - environment: - CIRCLE_TOKEN: - from_secret: circle_token - image: grafana/loki-build-image:0.7.4 - name: trigger + - commands: + - ./tools/deploy.sh + environment: + CIRCLE_TOKEN: + from_secret: circle_token + image: grafana/loki-build-image:0.7.4 + name: trigger trigger: ref: include: - - refs/heads/master - - refs/tags/v* + - refs/heads/master + - refs/tags/v* diff --git a/tools/deploy.sh b/tools/deploy.sh new file mode 100755 index 000000000000..d1925396541d --- /dev/null +++ b/tools/deploy.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +curl -s --header "Content-Type: application/json" \ + --data "{\"build_parameters\":{\"CIRCLE_JOB\": \"deploy\", \"IMAGE_NAMES\": \"$(make print-images)\"}}" \ + --request POST \ + https://circleci.com/api/v1.1/project/github/raintank/deployment_tools/tree/master?circle-token=$CIRCLE_TOKEN