The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
grafana/.drone.yml

4314 lines
112 KiB

---
depends_on: []
kind: pipeline
name: pr-test
node:
type: no-parallel
platform:
arch: amd64
os: linux
services: []
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- make gen-go
- ./bin/grabpl gen-version --build-id ${DRONE_BUILD_NUMBER}
- yarn install --immutable
image: grafana/build-container:1.4.8
name: initialize
- commands:
- ./bin/grabpl verify-drone
depends_on:
- grabpl
image: byrnedo/alpine-curl:0.1.8
name: lint-drone
- commands:
- |-
echo -e "unknwon
referer
errorstring
eror
iam
wan" > words_to_ignore.txt
- codespell -I words_to_ignore.txt docs/
- rm words_to_ignore.txt
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: codespell
- commands:
- ./bin/grabpl shellcheck
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: shellcheck
- commands:
- ./bin/grabpl lint-backend --edition oss
depends_on:
- initialize
environment:
CGO_ENABLED: "1"
image: grafana/build-container:1.4.8
name: lint-backend
- commands:
- yarn run prettier:check
- yarn run lint
- yarn run i18n:compile
- yarn run typecheck
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: lint-frontend
- commands:
- ./bin/grabpl test-backend --edition oss
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend
- commands:
- ./bin/grabpl integration-tests --edition oss
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-integration
- commands:
- yarn run ci:test-frontend
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: test-frontend
trigger:
event:
- pull_request
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
depends_on: []
kind: pipeline
name: pr-build-e2e
node:
type: no-parallel
platform:
arch: amd64
os: linux
services: []
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- make gen-go
- ./bin/grabpl gen-version --build-id ${DRONE_BUILD_NUMBER}
- yarn install --immutable
image: grafana/build-container:1.4.8
name: initialize
- commands:
- ./bin/grabpl build-backend --jobs 8 --edition oss --build-id ${DRONE_BUILD_NUMBER}
--variants linux-x64,linux-x64-musl,osx64,win64,armv6 --no-pull-enterprise
depends_on:
- initialize
environment: {}
image: grafana/build-container:1.4.8
name: build-backend
- commands:
- ./bin/grabpl build-frontend --jobs 8 --no-install-deps --edition oss --build-id
${DRONE_BUILD_NUMBER} --no-pull-enterprise
depends_on:
- initialize
environment:
NODE_OPTIONS: --max_old_space_size=8192
image: grafana/build-container:1.4.8
name: build-frontend
- commands:
- ./bin/grabpl build-plugins --jobs 8 --edition oss --no-install-deps
depends_on:
- initialize
environment: null
image: grafana/build-container:1.4.8
name: build-plugins
- commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
image: grafana/build-container:1.4.8
name: validate-scuemata
- commands:
- '# Make sure the git tree is clean.'
- '# Stashing changes, since packages that were produced in build-backend step are
needed.'
- git stash
- ./bin/linux-amd64/grafana-cli cue gen-ts --grafana-root .
- '# The above command generates Typescript files (*.gen.ts) from all appropriate
.cue files.'
- '# It is required that the generated Typescript be in sync with the input CUE
files.'
- '# ...Modulo eslint auto-fixes...:'
- yarn run eslint . --ext .gen.ts --fix
- '# If any filenames are emitted by the below script, run the generator command
`grafana-cli cue gen-ts` locally and commit the result.'
- ./scripts/clean-git-or-error.sh
- '# Un-stash changes.'
- git stash pop
depends_on:
- validate-scuemata
image: grafana/build-container:1.4.8
name: ensure-cuetsified
- commands:
- . scripts/build/gpg-test-vars.sh && ./bin/grabpl package --jobs 8 --edition oss
--build-id ${DRONE_BUILD_NUMBER} --no-pull-enterprise --variants linux-x64,linux-x64-musl,osx64,win64,armv6
depends_on:
- build-plugins
- build-backend
- build-frontend
environment: null
image: grafana/build-container:1.4.8
name: package
- commands:
- yarn run cypress install
depends_on:
- package
image: grafana/ci-e2e:12.19.0-1
name: cypress
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./e2e/start-server
depends_on:
- package
detach: true
environment:
PORT: 3001
image: grafana/build-container:1.4.8
name: end-to-end-tests-server
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-dashboards-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite smoke-tests-suite
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-smoke-tests-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite panels-suite
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-panels-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite various-suite
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-various-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- yarn storybook:build
- ./bin/grabpl verify-storybook
depends_on:
- build-frontend
environment:
NODE_OPTIONS: --max_old_space_size=4096
image: grafana/build-container:1.4.8
name: build-storybook
- commands:
- yarn wait-on http://$HOST:$PORT
- pa11y-ci --config .pa11yci-pr.conf.js
depends_on:
- end-to-end-tests-server
environment:
GRAFANA_MISC_STATS_API_KEY:
from_secret: grafana_misc_stats_api_key
HOST: end-to-end-tests-server
PORT: 3001
failure: always
image: hugohaggmark/docker-puppeteer
name: test-a11y-frontend
- commands:
- ./scripts/ci-reference-docs-lint.sh ci
depends_on:
- build-frontend
image: grafana/build-container:1.4.8
name: build-frontend-docs
- commands:
- mkdir -p /hugo/content/docs/grafana
- cp -r docs/sources/* /hugo/content/docs/grafana/latest/
- cd /hugo && make prod
depends_on:
- build-frontend-docs
image: grafana/docs-base:latest
name: build-docs-website
- commands:
- ls dist/*.tar.gz*
- cp dist/*.tar.gz* packaging/docker/
depends_on:
- package
image: grafana/build-container:1.4.8
name: copy-packages-for-docker
- depends_on:
- copy-packages-for-docker
image: grafana/drone-grafana-docker:0.3.2
name: build-docker-images
settings:
archs: amd64
dry_run: true
edition: oss
ubuntu: false
trigger:
event:
- pull_request
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
depends_on: []
kind: pipeline
name: pr-integration-tests
node:
type: no-parallel
platform:
arch: amd64
os: linux
services:
- environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_DB: grafanatest
POSTGRES_PASSWORD: grafanatest
POSTGRES_USER: grafanatest
image: postgres:12.3-alpine
name: postgres
volumes:
- name: postgres
path: /var/lib/postgresql/data/pgdata
- environment:
MYSQL_DATABASE: grafana_tests
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_USER: grafana
image: mysql:5.6.48
name: mysql
volumes:
- name: mysql
path: /var/lib/mysql
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- make gen-go
- ./bin/grabpl gen-version --build-id ${DRONE_BUILD_NUMBER}
- yarn install --immutable
image: grafana/build-container:1.4.8
name: initialize
- commands:
- apt-get update
- apt-get install -yq postgresql-client
- dockerize -wait tcp://postgres:5432 -timeout 120s
- psql -p 5432 -h postgres -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql
- go clean -testcache
- ./bin/grabpl integration-tests --database postgres
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: postgres
PGPASSWORD: grafanatest
POSTGRES_HOST: postgres
image: grafana/build-container:1.4.8
name: postgres-integration-tests
- commands:
- apt-get update
- apt-get install -yq default-mysql-client
- dockerize -wait tcp://mysql:3306 -timeout 120s
- cat devenv/docker/blocks/mysql_tests/setup.sql | mysql -h mysql -P 3306 -u root
-prootpass
- go clean -testcache
- ./bin/grabpl integration-tests --database mysql
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: mysql
MYSQL_HOST: mysql
image: grafana/build-container:1.4.8
name: mysql-integration-tests
trigger:
event:
- pull_request
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
- name: postgres
temp:
medium: memory
- name: mysql
temp:
medium: memory
---
depends_on: []
kind: pipeline
name: main-test
node:
type: no-parallel
platform:
arch: amd64
os: linux
services: []
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- make gen-go
- ./bin/grabpl gen-version --build-id ${DRONE_BUILD_NUMBER}
- yarn install --immutable
image: grafana/build-container:1.4.8
name: initialize
- commands:
- ./bin/grabpl verify-drone
depends_on:
- grabpl
image: byrnedo/alpine-curl:0.1.8
name: lint-drone
- commands:
- |-
echo -e "unknwon
referer
errorstring
eror
iam
wan" > words_to_ignore.txt
- codespell -I words_to_ignore.txt docs/
- rm words_to_ignore.txt
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: codespell
- commands:
- ./bin/grabpl shellcheck
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: shellcheck
- commands:
- ./bin/grabpl lint-backend --edition oss
depends_on:
- initialize
environment:
CGO_ENABLED: "1"
image: grafana/build-container:1.4.8
name: lint-backend
- commands:
- yarn run prettier:check
- yarn run lint
- yarn run i18n:compile
- yarn run typecheck
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: lint-frontend
- commands:
- ./bin/grabpl test-backend --edition oss
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend
- commands:
- ./bin/grabpl integration-tests --edition oss
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-integration
- commands:
- yarn run ci:test-frontend
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: test-frontend
trigger:
branch: main
event:
- push
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
depends_on: []
kind: pipeline
name: main-build-e2e-publish
node:
type: no-parallel
platform:
arch: amd64
os: linux
services: []
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- make gen-go
- ./bin/grabpl gen-version --build-id ${DRONE_BUILD_NUMBER}
- yarn install --immutable
image: grafana/build-container:1.4.8
name: initialize
- image: grafana/drone-downstream
name: trigger-enterprise-downstream
settings:
params:
- SOURCE_BUILD_NUMBER=${DRONE_BUILD_NUMBER}
- SOURCE_COMMIT=${DRONE_COMMIT}
repositories:
- grafana/grafana-enterprise@main
server: https://drone.grafana.net
token:
from_secret: drone_token
- commands:
- ./bin/grabpl build-backend --jobs 8 --edition oss --build-id ${DRONE_BUILD_NUMBER}
--no-pull-enterprise
depends_on:
- initialize
environment: {}
image: grafana/build-container:1.4.8
name: build-backend
- commands:
- ./bin/grabpl build-frontend --jobs 8 --no-install-deps --edition oss --build-id
${DRONE_BUILD_NUMBER} --no-pull-enterprise
depends_on:
- initialize
environment:
NODE_OPTIONS: --max_old_space_size=8192
image: grafana/build-container:1.4.8
name: build-frontend
- commands:
- ./bin/grabpl build-plugins --jobs 8 --edition oss --no-install-deps --sign --signing-admin
depends_on:
- initialize
environment:
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: build-plugins
- commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
image: grafana/build-container:1.4.8
name: validate-scuemata
- commands:
- '# Make sure the git tree is clean.'
- '# Stashing changes, since packages that were produced in build-backend step are
needed.'
- git stash
- ./bin/linux-amd64/grafana-cli cue gen-ts --grafana-root .
- '# The above command generates Typescript files (*.gen.ts) from all appropriate
.cue files.'
- '# It is required that the generated Typescript be in sync with the input CUE
files.'
- '# ...Modulo eslint auto-fixes...:'
- yarn run eslint . --ext .gen.ts --fix
- '# If any filenames are emitted by the below script, run the generator command
`grafana-cli cue gen-ts` locally and commit the result.'
- ./scripts/clean-git-or-error.sh
- '# Un-stash changes.'
- git stash pop
depends_on:
- validate-scuemata
image: grafana/build-container:1.4.8
name: ensure-cuetsified
- commands:
- ./bin/grabpl package --jobs 8 --edition oss --build-id ${DRONE_BUILD_NUMBER} --no-pull-enterprise
--sign
depends_on:
- build-plugins
- build-backend
- build-frontend
environment:
GITHUB_TOKEN:
from_secret: github_token
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: package
- commands:
- yarn run cypress install
depends_on:
- package
image: grafana/ci-e2e:12.19.0-1
name: cypress
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./e2e/start-server
depends_on:
- package
detach: true
environment:
PORT: 3001
image: grafana/build-container:1.4.8
name: end-to-end-tests-server
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-dashboards-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite smoke-tests-suite
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-smoke-tests-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite panels-suite
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-panels-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite various-suite
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-various-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- yarn storybook:build
- ./bin/grabpl verify-storybook
depends_on:
- build-frontend
environment:
NODE_OPTIONS: --max_old_space_size=4096
image: grafana/build-container:1.4.8
name: build-storybook
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- gsutil -m rsync -d -r ./packages/grafana-ui/dist/storybook gs://$${PRERELEASE_BUCKET}/artifacts/storybook/canary
depends_on:
- build-storybook
- end-to-end-tests-dashboards-suite
- end-to-end-tests-panels-suite
- end-to-end-tests-smoke-tests-suite
- end-to-end-tests-various-suite
environment:
GCP_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: store-storybook
- commands:
- yarn wait-on http://$HOST:$PORT
- pa11y-ci --config .pa11yci.conf.js --json > pa11y-ci-results.json
depends_on:
- end-to-end-tests-server
environment:
GRAFANA_MISC_STATS_API_KEY:
from_secret: grafana_misc_stats_api_key
HOST: end-to-end-tests-server
PORT: 3001
failure: ignore
image: hugohaggmark/docker-puppeteer
name: test-a11y-frontend
- commands:
- ./scripts/ci-frontend-metrics.sh | ./bin/grabpl publish-metrics $${GRAFANA_MISC_STATS_API_KEY}
depends_on:
- test-a11y-frontend
environment:
GRAFANA_MISC_STATS_API_KEY:
from_secret: grafana_misc_stats_api_key
failure: ignore
image: grafana/build-container:1.4.8
name: publish-frontend-metrics
- commands:
- ./scripts/ci-reference-docs-lint.sh ci
depends_on:
- build-frontend
image: grafana/build-container:1.4.8
name: build-frontend-docs
- commands:
- ls dist/*.tar.gz*
- cp dist/*.tar.gz* packaging/docker/
depends_on:
- package
image: grafana/build-container:1.4.8
name: copy-packages-for-docker
- depends_on:
- copy-packages-for-docker
image: grafana/drone-grafana-docker:0.3.2
name: build-docker-images
settings:
dry_run: false
edition: oss
password:
from_secret: docker_password
ubuntu: false
username:
from_secret: docker_user
- depends_on:
- copy-packages-for-docker
image: grafana/drone-grafana-docker:0.3.2
name: build-docker-images-ubuntu
settings:
dry_run: false
edition: oss
password:
from_secret: docker_password
ubuntu: true
username:
from_secret: docker_user
- commands:
- ./scripts/circle-release-canary-packages.sh
depends_on:
- end-to-end-tests-dashboards-suite
- end-to-end-tests-panels-suite
- end-to-end-tests-smoke-tests-suite
- end-to-end-tests-various-suite
environment:
NPM_TOKEN:
from_secret: npm_token
image: grafana/build-container:1.4.8
name: release-canary-npm-packages
- commands:
- ./bin/grabpl upload-packages --edition oss --packages-bucket grafana-downloads
depends_on:
- end-to-end-tests-dashboards-suite
- end-to-end-tests-panels-suite
- end-to-end-tests-smoke-tests-suite
- end-to-end-tests-various-suite
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-packages
- commands:
- ./bin/grabpl upload-cdn --edition oss --bucket "grafana-static-assets"
depends_on:
- end-to-end-tests-server
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-cdn-assets
trigger:
branch: main
event:
- push
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
- name: postgres
temp:
medium: memory
- name: mysql
temp:
medium: memory
---
depends_on: []
kind: pipeline
name: main-integration-tests
node:
type: no-parallel
platform:
arch: amd64
os: linux
services:
- environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_DB: grafanatest
POSTGRES_PASSWORD: grafanatest
POSTGRES_USER: grafanatest
image: postgres:12.3-alpine
name: postgres
volumes:
- name: postgres
path: /var/lib/postgresql/data/pgdata
- environment:
MYSQL_DATABASE: grafana_tests
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_USER: grafana
image: mysql:5.6.48
name: mysql
volumes:
- name: mysql
path: /var/lib/mysql
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- make gen-go
- ./bin/grabpl gen-version --build-id ${DRONE_BUILD_NUMBER}
- yarn install --immutable
image: grafana/build-container:1.4.8
name: initialize
- commands:
- apt-get update
- apt-get install -yq postgresql-client
- dockerize -wait tcp://postgres:5432 -timeout 120s
- psql -p 5432 -h postgres -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql
- go clean -testcache
- ./bin/grabpl integration-tests --database postgres
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: postgres
PGPASSWORD: grafanatest
POSTGRES_HOST: postgres
image: grafana/build-container:1.4.8
name: postgres-integration-tests
- commands:
- apt-get update
- apt-get install -yq default-mysql-client
- dockerize -wait tcp://mysql:3306 -timeout 120s
- cat devenv/docker/blocks/mysql_tests/setup.sql | mysql -h mysql -P 3306 -u root
-prootpass
- go clean -testcache
- ./bin/grabpl integration-tests --database mysql
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: mysql
MYSQL_HOST: mysql
image: grafana/build-container:1.4.8
name: mysql-integration-tests
trigger:
branch: main
event:
- push
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
- name: postgres
temp:
medium: memory
- name: mysql
temp:
medium: memory
---
depends_on:
- main-test
- main-build-e2e-publish
- main-integration-tests
kind: pipeline
name: windows-main
platform:
arch: amd64
os: windows
version: "1809"
services: []
steps:
- commands:
- echo $env:DRONE_RUNNER_NAME
image: mcr.microsoft.com/windows:1809
name: identify-runner
- commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/windows/grabpl.exe
-OutFile grabpl.exe
image: grafana/ci-wix:0.1.1
name: initialize
- commands:
- $$gcpKey = $$env:GCP_KEY
- '[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($$gcpKey))
> gcpkey.json'
- dos2unix gcpkey.json
- gcloud auth activate-service-account --key-file=gcpkey.json
- rm gcpkey.json
- cp C:\App\nssm-2.24.zip .
- .\grabpl.exe windows-installer --edition oss --packages-bucket grafana-downloads
--build-id $$env:DRONE_BUILD_NUMBER
- $$fname = ((Get-Childitem grafana*.msi -name) -split "`n")[0]
- gsutil cp $$fname gs://grafana-downloads/oss/main/
- gsutil cp "$$fname.sha256" gs://grafana-downloads/oss/main/
depends_on:
- initialize
environment:
GCP_KEY:
from_secret: gcp_key
GITHUB_TOKEN:
from_secret: github_token
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/ci-wix:0.1.1
name: build-windows-installer
trigger:
branch: main
event:
- push
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
depends_on: []
kind: pipeline
name: notify-drone-changes
platform:
arch: amd64
os: linux
steps:
- image: plugins/slack
name: slack
settings:
channel: slack-webhooks-test
template: "`.drone.yml` and `starlark` files have been changed on the OSS repo,
by: {{build.author}}. \nBranch: <https://github.com/{{ repo.owner }}/{{ repo.name
}}/commits/{{ build.branch }}|{{ build.branch }}>\nCommit hash: <https://github.com/{{repo.owner}}/{{repo.name}}/commit/{{build.commit}}|{{
truncate build.commit 8 }}>"
webhook:
from_secret: drone-changes-webhook
trigger:
branch: main
event:
- push
paths:
exclude:
- exclude
include:
- .drone.yml
type: docker
---
depends_on:
- main-test
- main-build-e2e-publish
- main-integration-tests
- windows-main
kind: pipeline
name: publish-main
node:
type: no-parallel
platform:
arch: amd64
os: linux
services: []
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- make gen-go
image: grafana/build-container:1.4.8
name: initialize
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- ./bin/grabpl store-packages --edition oss --gcp-key /tmp/gcpkey.json --build-id
${DRONE_BUILD_NUMBER}
depends_on:
- initialize
environment:
GCP_KEY:
from_secret: gcp_key
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_COM_API_KEY:
from_secret: grafana_api_key
image: grafana/grafana-ci-deploy:1.3.1
name: store-packages-oss
trigger:
branch: main
event:
- push
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
depends_on:
- main-test
- main-build-e2e-publish
- main-integration-tests
- windows-main
- publish-main
kind: pipeline
name: notify-main
platform:
arch: amd64
os: linux
steps:
- image: plugins/slack
name: slack
settings:
channel: grafana-ci-notifications
template: |-
Build {{build.number}} failed for commit: <https://github.com/{{repo.owner}}/{{repo.name}}/commit/{{build.commit}}|{{ truncate build.commit 8 }}>: {{build.link}}
Branch: <https://github.com/{{ repo.owner }}/{{ repo.name }}/commits/{{ build.branch }}|{{ build.branch }}>
Author: {{build.author}}
webhook:
from_secret: slack_webhook
trigger:
branch: main
event:
- push
status:
- failure
type: docker
---
depends_on: []
kind: pipeline
name: oss-build-release
node:
type: no-parallel
platform:
arch: amd64
os: linux
services:
- environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_DB: grafanatest
POSTGRES_PASSWORD: grafanatest
POSTGRES_USER: grafanatest
image: postgres:12.3-alpine
name: postgres
volumes:
- name: postgres
path: /var/lib/postgresql/data/pgdata
- environment:
MYSQL_DATABASE: grafana_tests
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_USER: grafana
image: mysql:5.6.48
name: mysql
volumes:
- name: mysql
path: /var/lib/mysql
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- make gen-go
- ./bin/grabpl verify-version ${DRONE_TAG}
- ./bin/grabpl gen-version ${DRONE_TAG}
- yarn install --immutable
image: grafana/build-container:1.4.8
name: initialize
- commands:
- |-
echo -e "unknwon
referer
errorstring
eror
iam
wan" > words_to_ignore.txt
- codespell -I words_to_ignore.txt docs/
- rm words_to_ignore.txt
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: codespell
- commands:
- ./bin/grabpl shellcheck
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: shellcheck
- commands:
- ./bin/grabpl lint-backend --edition oss
depends_on:
- initialize
environment:
CGO_ENABLED: "1"
image: grafana/build-container:1.4.8
name: lint-backend
- commands:
- yarn run prettier:check
- yarn run lint
- yarn run i18n:compile
- yarn run typecheck
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: lint-frontend
- commands:
- ./bin/grabpl test-backend --edition oss
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend
- commands:
- ./bin/grabpl integration-tests --edition oss
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-integration
- commands:
- yarn run ci:test-frontend
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: test-frontend
- commands:
- apt-get update
- apt-get install -yq postgresql-client
- dockerize -wait tcp://postgres:5432 -timeout 120s
- psql -p 5432 -h postgres -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql
- go clean -testcache
- ./bin/grabpl integration-tests --database postgres
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: postgres
PGPASSWORD: grafanatest
POSTGRES_HOST: postgres
image: grafana/build-container:1.4.8
name: postgres-integration-tests
- commands:
- apt-get update
- apt-get install -yq default-mysql-client
- dockerize -wait tcp://mysql:3306 -timeout 120s
- cat devenv/docker/blocks/mysql_tests/setup.sql | mysql -h mysql -P 3306 -u root
-prootpass
- go clean -testcache
- ./bin/grabpl integration-tests --database mysql
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: mysql
MYSQL_HOST: mysql
image: grafana/build-container:1.4.8
name: mysql-integration-tests
- commands:
- ./bin/grabpl build-backend --jobs 8 --edition oss --github-token $${GITHUB_TOKEN}
--no-pull-enterprise ${DRONE_TAG}
depends_on:
- initialize
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: build-backend
- commands:
- ./bin/grabpl build-frontend --jobs 8 --github-token $${GITHUB_TOKEN} --no-install-deps
--edition oss --no-pull-enterprise ${DRONE_TAG}
depends_on:
- initialize
environment:
NODE_OPTIONS: --max_old_space_size=8192
image: grafana/build-container:1.4.8
name: build-frontend
- commands:
- ./bin/grabpl build-plugins --jobs 8 --edition oss --no-install-deps --sign --signing-admin
depends_on:
- initialize
environment:
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: build-plugins
- commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
image: grafana/build-container:1.4.8
name: validate-scuemata
- commands:
- '# Make sure the git tree is clean.'
- '# Stashing changes, since packages that were produced in build-backend step are
needed.'
- git stash
- ./bin/linux-amd64/grafana-cli cue gen-ts --grafana-root .
- '# The above command generates Typescript files (*.gen.ts) from all appropriate
.cue files.'
- '# It is required that the generated Typescript be in sync with the input CUE
files.'
- '# ...Modulo eslint auto-fixes...:'
- yarn run eslint . --ext .gen.ts --fix
- '# If any filenames are emitted by the below script, run the generator command
`grafana-cli cue gen-ts` locally and commit the result.'
- ./scripts/clean-git-or-error.sh
- '# Un-stash changes.'
- git stash pop
depends_on:
- validate-scuemata
image: grafana/build-container:1.4.8
name: ensure-cuetsified
- commands:
- ./bin/grabpl package --jobs 8 --edition oss --github-token $${GITHUB_TOKEN} --no-pull-enterprise
--sign ${DRONE_TAG}
depends_on:
- build-plugins
- build-backend
- build-frontend
environment:
GITHUB_TOKEN:
from_secret: github_token
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: package
- commands:
- yarn run cypress install
depends_on:
- package
image: grafana/ci-e2e:12.19.0-1
name: cypress
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./e2e/start-server
depends_on:
- package
detach: true
environment:
PORT: 3001
image: grafana/build-container:1.4.8
name: end-to-end-tests-server
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-dashboards-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite smoke-tests-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-smoke-tests-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite panels-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-panels-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite various-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-various-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ls dist/*.tar.gz*
- cp dist/*.tar.gz* packaging/docker/
depends_on:
- package
image: grafana/build-container:1.4.8
name: copy-packages-for-docker
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition oss --shouldSave
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition oss --shouldSave --ubuntu
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images-ubuntu
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- yarn storybook:build
- ./bin/grabpl verify-storybook
depends_on:
- build-frontend
environment:
NODE_OPTIONS: --max_old_space_size=4096
image: grafana/build-container:1.4.8
name: build-storybook
- commands:
- ./bin/grabpl upload-cdn --edition oss --bucket "$${PRERELEASE_BUCKET}/artifacts/static-assets"
depends_on:
- end-to-end-tests-server
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-cdn-assets
- commands:
- ./bin/grabpl upload-packages --edition oss --packages-bucket $${PRERELEASE_BUCKET}/artifacts/downloads/${DRONE_TAG}
depends_on:
- end-to-end-tests-dashboards-suite
- end-to-end-tests-panels-suite
- end-to-end-tests-smoke-tests-suite
- end-to-end-tests-various-suite
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-packages
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- gsutil -m rsync -d -r ./packages/grafana-ui/dist/storybook gs://$${PRERELEASE_BUCKET}/artifacts/storybook/latest
- gsutil -m rsync -d -r ./packages/grafana-ui/dist/storybook gs://$${PRERELEASE_BUCKET}/artifacts/storybook/${DRONE_TAG}
depends_on:
- build-storybook
- end-to-end-tests-dashboards-suite
- end-to-end-tests-panels-suite
- end-to-end-tests-smoke-tests-suite
- end-to-end-tests-various-suite
environment:
GCP_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: store-storybook
- commands:
- ./scripts/build/build-npm-packages.sh ${DRONE_TAG}
depends_on:
- store-storybook
image: grafana/build-container:1.4.8
name: build-npm-packages
- commands:
- ./scripts/build/store-npm-packages.sh ${DRONE_TAG}
depends_on:
- build-npm-packages
environment:
GCP_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: store-npm-packages
trigger:
ref:
- refs/tags/v*
repo:
exclude:
- grafana/grafana
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
- name: postgres
temp:
medium: memory
- name: mysql
temp:
medium: memory
---
depends_on:
- oss-build-release
kind: pipeline
name: oss-windows-release
platform:
arch: amd64
os: windows
version: "1809"
services: []
steps:
- commands:
- echo $env:DRONE_RUNNER_NAME
image: mcr.microsoft.com/windows:1809
name: identify-runner
- commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/windows/grabpl.exe
-OutFile grabpl.exe
image: grafana/ci-wix:0.1.1
name: initialize
- commands:
- $$gcpKey = $$env:GCP_KEY
- '[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($$gcpKey))
> gcpkey.json'
- dos2unix gcpkey.json
- gcloud auth activate-service-account --key-file=gcpkey.json
- rm gcpkey.json
- cp C:\App\nssm-2.24.zip .
- .\grabpl.exe windows-installer --edition oss ${DRONE_TAG}
- $$fname = ((Get-Childitem grafana*.msi -name) -split "`n")[0]
- gsutil cp $$fname gs://%PRERELEASE_BUCKET%/artifacts/downloads/oss/release/
- gsutil cp "$$fname.sha256" gs://%PRERELEASE_BUCKET%/artifacts/downloads/oss/release/
depends_on:
- initialize
environment:
GCP_KEY:
from_secret: gcp_key
GITHUB_TOKEN:
from_secret: github_token
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/ci-wix:0.1.1
name: build-windows-installer
trigger:
ref:
- refs/tags/v*
repo:
exclude:
- grafana/grafana
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
clone:
disable: true
depends_on: []
image_pull_secrets:
- dockerconfigjson
kind: pipeline
name: enterprise-build-release
node:
type: no-parallel
platform:
arch: amd64
os: linux
services:
- environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_DB: grafanatest
POSTGRES_PASSWORD: grafanatest
POSTGRES_USER: grafanatest
image: postgres:12.3-alpine
name: postgres
volumes:
- name: postgres
path: /var/lib/postgresql/data/pgdata
- environment:
MYSQL_DATABASE: grafana_tests
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_USER: grafana
image: mysql:5.6.48
name: mysql
volumes:
- name: mysql
path: /var/lib/mysql
- environment: {}
image: redis:6.2.1-alpine
name: redis
- environment: {}
image: memcached:1.6.9-alpine
name: memcached
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- git clone "https://$${GITHUB_TOKEN}@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
- git checkout ${DRONE_TAG}
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: clone-enterprise
- commands:
- mv bin/grabpl /tmp/
- rmdir bin
- mv grafana-enterprise /tmp/
- /tmp/grabpl init-enterprise --github-token $${GITHUB_TOKEN} /tmp/grafana-enterprise
${DRONE_TAG}
- mv /tmp/grafana-enterprise/deployment_tools_config.json deployment_tools_config.json
- mkdir bin
- mv /tmp/grabpl bin/
- make gen-go
- ./bin/grabpl verify-version ${DRONE_TAG}
- ./bin/grabpl gen-version ${DRONE_TAG}
- yarn install --immutable
depends_on:
- clone-enterprise
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: initialize
- commands:
- |-
echo -e "unknwon
referer
errorstring
eror
iam
wan" > words_to_ignore.txt
- codespell -I words_to_ignore.txt docs/
- rm words_to_ignore.txt
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: codespell
- commands:
- ./bin/grabpl shellcheck
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: shellcheck
- commands:
- ./bin/grabpl lint-backend --edition enterprise
depends_on:
- initialize
environment:
CGO_ENABLED: "1"
image: grafana/build-container:1.4.8
name: lint-backend
- commands:
- yarn run prettier:check
- yarn run lint
- yarn run i18n:compile
- yarn run typecheck
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: lint-frontend
- commands:
- ./bin/grabpl test-backend --edition enterprise
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend
- commands:
- ./bin/grabpl integration-tests --edition enterprise
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-integration
- commands:
- yarn run ci:test-frontend
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: test-frontend
- commands:
- apt-get update
- apt-get install -yq postgresql-client
- dockerize -wait tcp://postgres:5432 -timeout 120s
- psql -p 5432 -h postgres -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql
- go clean -testcache
- ./bin/grabpl integration-tests --database postgres
depends_on:
- initialize
environment:
GRAFANA_TEST_DB: postgres
PGPASSWORD: grafanatest
POSTGRES_HOST: postgres
image: grafana/build-container:1.4.8
name: postgres-integration-tests
- commands:
- apt-get update
- apt-get install -yq default-mysql-client
- dockerize -wait tcp://mysql:3306 -timeout 120s
- cat devenv/docker/blocks/mysql_tests/setup.sql | mysql -h mysql -P 3306 -u root
-prootpass
- go clean -testcache
- ./bin/grabpl integration-tests --database mysql
depends_on:
- initialize
environment:
GRAFANA_TEST_DB: mysql
MYSQL_HOST: mysql
image: grafana/build-container:1.4.8
name: mysql-integration-tests
- commands:
- ./bin/grabpl build-backend --jobs 8 --edition enterprise --github-token $${GITHUB_TOKEN}
--no-pull-enterprise ${DRONE_TAG}
depends_on:
- initialize
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: build-backend
- commands:
- ./bin/grabpl build-frontend --jobs 8 --github-token $${GITHUB_TOKEN} --no-install-deps
--edition enterprise --no-pull-enterprise ${DRONE_TAG}
depends_on:
- initialize
environment:
NODE_OPTIONS: --max_old_space_size=8192
image: grafana/build-container:1.4.8
name: build-frontend
- commands:
- ./bin/grabpl build-plugins --jobs 8 --edition enterprise --no-install-deps --sign
--signing-admin
depends_on:
- initialize
environment:
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: build-plugins
- commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
image: grafana/build-container:1.4.8
name: validate-scuemata
- commands:
- '# Make sure the git tree is clean.'
- '# Stashing changes, since packages that were produced in build-backend step are
needed.'
- git stash
- ./bin/linux-amd64/grafana-cli cue gen-ts --grafana-root .
- '# The above command generates Typescript files (*.gen.ts) from all appropriate
.cue files.'
- '# It is required that the generated Typescript be in sync with the input CUE
files.'
- '# ...Modulo eslint auto-fixes...:'
- yarn run eslint . --ext .gen.ts --fix
- '# If any filenames are emitted by the below script, run the generator command
`grafana-cli cue gen-ts` locally and commit the result.'
- ./scripts/clean-git-or-error.sh
- '# Un-stash changes.'
- git stash pop
depends_on:
- validate-scuemata
image: grafana/build-container:1.4.8
name: ensure-cuetsified
- commands:
- ./bin/grabpl lint-backend --edition enterprise2
depends_on:
- initialize
environment:
CGO_ENABLED: "1"
image: grafana/build-container:1.4.8
name: lint-backend-enterprise2
- commands:
- ./bin/grabpl test-backend --edition enterprise2
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-enterprise2
- commands:
- ./bin/grabpl integration-tests --edition enterprise2
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-integration-enterprise2
- commands:
- ./bin/grabpl build-backend --jobs 8 --edition enterprise2 --github-token $${GITHUB_TOKEN}
--no-pull-enterprise ${DRONE_TAG}
depends_on:
- initialize
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: build-backend-enterprise2
- commands:
- ./bin/grabpl package --jobs 8 --edition enterprise --github-token $${GITHUB_TOKEN}
--no-pull-enterprise --sign ${DRONE_TAG}
depends_on:
- build-plugins
- build-backend
- build-frontend
- build-backend-enterprise2
- test-backend-enterprise2
environment:
GITHUB_TOKEN:
from_secret: github_token
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: package
- commands:
- yarn run cypress install
depends_on:
- package
image: grafana/ci-e2e:12.19.0-1
name: cypress
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./e2e/start-server
depends_on:
- package
detach: true
environment:
PACKAGE_FILE: dist/grafana-enterprise-*linux-amd64.tar.gz
PORT: 3001
RUNDIR: e2e/tmp-grafana-enterprise
image: grafana/build-container:1.4.8
name: end-to-end-tests-server
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-dashboards-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite smoke-tests-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-smoke-tests-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite panels-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-panels-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite various-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-various-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ls dist/*.tar.gz*
- cp dist/*.tar.gz* packaging/docker/
depends_on:
- package
image: grafana/build-container:1.4.8
name: copy-packages-for-docker
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition enterprise --shouldSave
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition enterprise --shouldSave --ubuntu
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images-ubuntu
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- dockerize -wait tcp://redis:6379/0 -timeout 120s
- ./bin/grabpl integration-tests
depends_on:
- initialize
environment:
REDIS_URL: redis://redis:6379/0
image: grafana/build-container:1.4.8
name: redis-integration-tests
- commands:
- dockerize -wait tcp://memcached:11211 -timeout 120s
- ./bin/grabpl integration-tests
depends_on:
- initialize
environment:
MEMCACHED_HOSTS: memcached:11211
image: grafana/build-container:1.4.8
name: memcached-integration-tests
- commands:
- ./bin/grabpl upload-cdn --edition enterprise --bucket "$${PRERELEASE_BUCKET}/artifacts/static-assets"
depends_on:
- package
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-cdn-assets
- commands:
- ./bin/grabpl upload-packages --edition enterprise --packages-bucket $${PRERELEASE_BUCKET}/artifacts/downloads/${DRONE_TAG}
depends_on:
- package
- redis-integration-tests
- memcached-integration-tests
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-packages
- commands:
- ./bin/grabpl package --jobs 8 --edition enterprise2 --github-token $${GITHUB_TOKEN}
--no-pull-enterprise --sign ${DRONE_TAG}
depends_on:
- build-plugins
- build-backend
- build-frontend
- build-backend-enterprise2
- test-backend-enterprise2
environment:
GITHUB_TOKEN:
from_secret: github_token
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: package-enterprise2
- commands:
- ./bin/grabpl upload-cdn --edition enterprise2 --bucket "$${PRERELEASE_BUCKET}/artifacts/static-assets"
depends_on:
- package-enterprise2
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-cdn-assets-enterprise2
- commands:
- ./bin/grabpl upload-packages --edition enterprise2 --packages-bucket $${PRERELEASE_BUCKET}/artifacts/downloads-enterprise2/${DRONE_TAG}
depends_on:
- package-enterprise2
- redis-integration-tests
- memcached-integration-tests
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-packages-enterprise2
trigger:
ref:
- refs/tags/v*
repo:
exclude:
- grafana/grafana
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
- name: postgres
temp:
medium: memory
- name: mysql
temp:
medium: memory
---
clone:
disable: true
depends_on:
- enterprise-build-release
image_pull_secrets:
- dockerconfigjson
kind: pipeline
name: enterprise-windows-release
platform:
arch: amd64
os: windows
version: "1809"
services: []
steps:
- commands:
- echo $env:DRONE_RUNNER_NAME
image: mcr.microsoft.com/windows:1809
name: identify-runner
- commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/windows/grabpl.exe
-OutFile grabpl.exe
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
- git checkout ${DRONE_TAG}
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/ci-wix:0.1.1
name: clone
- commands:
- cp -r grafana-enterprise C:\App\grafana-enterprise
- rm -r -force grafana-enterprise
- cp grabpl.exe C:\App\grabpl.exe
- rm -force grabpl.exe
- C:\App\grabpl.exe init-enterprise --github-token $$env:GITHUB_TOKEN C:\App\grafana-enterprise
- cp C:\App\grabpl.exe grabpl.exe
depends_on:
- clone
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/ci-wix:0.1.1
name: initialize
- commands:
- $$gcpKey = $$env:GCP_KEY
- '[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($$gcpKey))
> gcpkey.json'
- dos2unix gcpkey.json
- gcloud auth activate-service-account --key-file=gcpkey.json
- rm gcpkey.json
- cp C:\App\nssm-2.24.zip .
- .\grabpl.exe windows-installer --edition enterprise ${DRONE_TAG}
- $$fname = ((Get-Childitem grafana*.msi -name) -split "`n")[0]
- gsutil cp $$fname gs://%PRERELEASE_BUCKET%/artifacts/downloads/enterprise/release/
- gsutil cp "$$fname.sha256" gs://%PRERELEASE_BUCKET%/artifacts/downloads/enterprise/release/
depends_on:
- initialize
environment:
GCP_KEY:
from_secret: gcp_key
GITHUB_TOKEN:
from_secret: github_token
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/ci-wix:0.1.1
name: build-windows-installer
trigger:
ref:
- refs/tags/v*
repo:
exclude:
- grafana/grafana
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
depends_on: []
kind: pipeline
name: oss-build-test-release
node:
type: no-parallel
platform:
arch: amd64
os: linux
services:
- environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_DB: grafanatest
POSTGRES_PASSWORD: grafanatest
POSTGRES_USER: grafanatest
image: postgres:12.3-alpine
name: postgres
volumes:
- name: postgres
path: /var/lib/postgresql/data/pgdata
- environment:
MYSQL_DATABASE: grafana_tests
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_USER: grafana
image: mysql:5.6.48
name: mysql
volumes:
- name: mysql
path: /var/lib/mysql
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- make gen-go
- ./bin/grabpl verify-version v7.3.0-test
- ./bin/grabpl gen-version v7.3.0-test
- yarn install --immutable
image: grafana/build-container:1.4.8
name: initialize
- commands:
- |-
echo -e "unknwon
referer
errorstring
eror
iam
wan" > words_to_ignore.txt
- codespell -I words_to_ignore.txt docs/
- rm words_to_ignore.txt
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: codespell
- commands:
- ./bin/grabpl shellcheck
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: shellcheck
- commands:
- ./bin/grabpl lint-backend --edition oss
depends_on:
- initialize
environment:
CGO_ENABLED: "1"
image: grafana/build-container:1.4.8
name: lint-backend
- commands:
- yarn run prettier:check
- yarn run lint
- yarn run i18n:compile
- yarn run typecheck
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: lint-frontend
- commands:
- ./bin/grabpl test-backend --edition oss
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend
- commands:
- ./bin/grabpl integration-tests --edition oss
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-integration
- commands:
- yarn run ci:test-frontend
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: test-frontend
- commands:
- apt-get update
- apt-get install -yq postgresql-client
- dockerize -wait tcp://postgres:5432 -timeout 120s
- psql -p 5432 -h postgres -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql
- go clean -testcache
- ./bin/grabpl integration-tests --database postgres
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: postgres
PGPASSWORD: grafanatest
POSTGRES_HOST: postgres
image: grafana/build-container:1.4.8
name: postgres-integration-tests
- commands:
- apt-get update
- apt-get install -yq default-mysql-client
- dockerize -wait tcp://mysql:3306 -timeout 120s
- cat devenv/docker/blocks/mysql_tests/setup.sql | mysql -h mysql -P 3306 -u root
-prootpass
- go clean -testcache
- ./bin/grabpl integration-tests --database mysql
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: mysql
MYSQL_HOST: mysql
image: grafana/build-container:1.4.8
name: mysql-integration-tests
- commands:
- ./bin/grabpl build-backend --jobs 8 --edition oss --github-token $${GITHUB_TOKEN}
--no-pull-enterprise v7.3.0-test
depends_on:
- initialize
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: build-backend
- commands:
- ./bin/grabpl build-frontend --jobs 8 --github-token $${GITHUB_TOKEN} --no-install-deps
--edition oss --no-pull-enterprise v7.3.0-test
depends_on:
- initialize
environment:
NODE_OPTIONS: --max_old_space_size=8192
image: grafana/build-container:1.4.8
name: build-frontend
- commands:
- ./bin/grabpl build-plugins --jobs 8 --edition oss --no-install-deps --sign --signing-admin
depends_on:
- initialize
environment:
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: build-plugins
- commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
image: grafana/build-container:1.4.8
name: validate-scuemata
- commands:
- '# Make sure the git tree is clean.'
- '# Stashing changes, since packages that were produced in build-backend step are
needed.'
- git stash
- ./bin/linux-amd64/grafana-cli cue gen-ts --grafana-root .
- '# The above command generates Typescript files (*.gen.ts) from all appropriate
.cue files.'
- '# It is required that the generated Typescript be in sync with the input CUE
files.'
- '# ...Modulo eslint auto-fixes...:'
- yarn run eslint . --ext .gen.ts --fix
- '# If any filenames are emitted by the below script, run the generator command
`grafana-cli cue gen-ts` locally and commit the result.'
- ./scripts/clean-git-or-error.sh
- '# Un-stash changes.'
- git stash pop
depends_on:
- validate-scuemata
image: grafana/build-container:1.4.8
name: ensure-cuetsified
- commands:
- ./bin/grabpl package --jobs 8 --edition oss --github-token $${GITHUB_TOKEN} --no-pull-enterprise
--sign v7.3.0-test
depends_on:
- build-plugins
- build-backend
- build-frontend
environment:
GITHUB_TOKEN:
from_secret: github_token
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: package
- commands:
- yarn run cypress install
depends_on:
- package
image: grafana/ci-e2e:12.19.0-1
name: cypress
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./e2e/start-server
depends_on:
- package
detach: true
environment:
PORT: 3001
image: grafana/build-container:1.4.8
name: end-to-end-tests-server
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-dashboards-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite smoke-tests-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-smoke-tests-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite panels-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-panels-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite various-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-various-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ls dist/*.tar.gz*
- cp dist/*.tar.gz* packaging/docker/
depends_on:
- package
image: grafana/build-container:1.4.8
name: copy-packages-for-docker
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition oss --shouldSave
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition oss --shouldSave --ubuntu
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images-ubuntu
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- yarn storybook:build
- ./bin/grabpl verify-storybook
depends_on:
- build-frontend
environment:
NODE_OPTIONS: --max_old_space_size=4096
image: grafana/build-container:1.4.8
name: build-storybook
- commands:
- ./bin/grabpl upload-cdn --edition oss --bucket "grafana-static-assets"
depends_on:
- end-to-end-tests-server
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-cdn-assets
- commands:
- ./bin/grabpl upload-packages --edition oss --packages-bucket grafana-downloads-test
depends_on:
- end-to-end-tests-dashboards-suite
- end-to-end-tests-panels-suite
- end-to-end-tests-smoke-tests-suite
- end-to-end-tests-various-suite
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-packages
- commands:
- echo Testing release
depends_on:
- build-storybook
- end-to-end-tests-dashboards-suite
- end-to-end-tests-panels-suite
- end-to-end-tests-smoke-tests-suite
- end-to-end-tests-various-suite
environment:
GCP_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: store-storybook
trigger:
event:
- custom
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
- name: postgres
temp:
medium: memory
- name: mysql
temp:
medium: memory
---
depends_on:
- oss-build-test-release
kind: pipeline
name: oss-windows-test-release
platform:
arch: amd64
os: windows
version: "1809"
services: []
steps:
- commands:
- echo $env:DRONE_RUNNER_NAME
image: mcr.microsoft.com/windows:1809
name: identify-runner
- commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/windows/grabpl.exe
-OutFile grabpl.exe
image: grafana/ci-wix:0.1.1
name: initialize
- commands:
- $$gcpKey = $$env:GCP_KEY
- '[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($$gcpKey))
> gcpkey.json'
- dos2unix gcpkey.json
- gcloud auth activate-service-account --key-file=gcpkey.json
- rm gcpkey.json
- cp C:\App\nssm-2.24.zip .
- .\grabpl.exe windows-installer --edition oss --packages-bucket grafana-downloads-test
v7.3.0-test
- $$fname = ((Get-Childitem grafana*.msi -name) -split "`n")[0]
- gsutil cp $$fname gs://grafana-downloads-test/oss/release/
- gsutil cp "$$fname.sha256" gs://grafana-downloads-test/oss/release/
depends_on:
- initialize
environment:
GCP_KEY:
from_secret: gcp_key
GITHUB_TOKEN:
from_secret: github_token
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/ci-wix:0.1.1
name: build-windows-installer
trigger:
event:
- custom
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
clone:
disable: true
depends_on: []
image_pull_secrets:
- dockerconfigjson
kind: pipeline
name: enterprise-build-test-release
node:
type: no-parallel
platform:
arch: amd64
os: linux
services:
- environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_DB: grafanatest
POSTGRES_PASSWORD: grafanatest
POSTGRES_USER: grafanatest
image: postgres:12.3-alpine
name: postgres
volumes:
- name: postgres
path: /var/lib/postgresql/data/pgdata
- environment:
MYSQL_DATABASE: grafana_tests
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_USER: grafana
image: mysql:5.6.48
name: mysql
volumes:
- name: mysql
path: /var/lib/mysql
- environment: {}
image: redis:6.2.1-alpine
name: redis
- environment: {}
image: memcached:1.6.9-alpine
name: memcached
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- git clone "https://$${GITHUB_TOKEN}@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
- git checkout main
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: clone-enterprise
- commands:
- mv bin/grabpl /tmp/
- rmdir bin
- mv grafana-enterprise /tmp/
- /tmp/grabpl init-enterprise --github-token $${GITHUB_TOKEN} /tmp/grafana-enterprise
- mv /tmp/grafana-enterprise/deployment_tools_config.json deployment_tools_config.json
- mkdir bin
- mv /tmp/grabpl bin/
- make gen-go
- ./bin/grabpl verify-version v7.3.0-test
- ./bin/grabpl gen-version v7.3.0-test
- yarn install --immutable
depends_on:
- clone-enterprise
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: initialize
- commands:
- |-
echo -e "unknwon
referer
errorstring
eror
iam
wan" > words_to_ignore.txt
- codespell -I words_to_ignore.txt docs/
- rm words_to_ignore.txt
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: codespell
- commands:
- ./bin/grabpl shellcheck
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: shellcheck
- commands:
- ./bin/grabpl lint-backend --edition enterprise
depends_on:
- initialize
environment:
CGO_ENABLED: "1"
image: grafana/build-container:1.4.8
name: lint-backend
- commands:
- yarn run prettier:check
- yarn run lint
- yarn run i18n:compile
- yarn run typecheck
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: lint-frontend
- commands:
- ./bin/grabpl test-backend --edition enterprise
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend
- commands:
- ./bin/grabpl integration-tests --edition enterprise
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-integration
- commands:
- yarn run ci:test-frontend
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: test-frontend
- commands:
- apt-get update
- apt-get install -yq postgresql-client
- dockerize -wait tcp://postgres:5432 -timeout 120s
- psql -p 5432 -h postgres -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql
- go clean -testcache
- ./bin/grabpl integration-tests --database postgres
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: postgres
PGPASSWORD: grafanatest
POSTGRES_HOST: postgres
image: grafana/build-container:1.4.8
name: postgres-integration-tests
- commands:
- apt-get update
- apt-get install -yq default-mysql-client
- dockerize -wait tcp://mysql:3306 -timeout 120s
- cat devenv/docker/blocks/mysql_tests/setup.sql | mysql -h mysql -P 3306 -u root
-prootpass
- go clean -testcache
- ./bin/grabpl integration-tests --database mysql
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: mysql
MYSQL_HOST: mysql
image: grafana/build-container:1.4.8
name: mysql-integration-tests
- commands:
- ./bin/grabpl build-backend --jobs 8 --edition enterprise --github-token $${GITHUB_TOKEN}
--no-pull-enterprise v7.3.0-test
depends_on:
- initialize
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: build-backend
- commands:
- ./bin/grabpl build-frontend --jobs 8 --github-token $${GITHUB_TOKEN} --no-install-deps
--edition enterprise --no-pull-enterprise v7.3.0-test
depends_on:
- initialize
environment:
NODE_OPTIONS: --max_old_space_size=8192
image: grafana/build-container:1.4.8
name: build-frontend
- commands:
- ./bin/grabpl build-plugins --jobs 8 --edition enterprise --no-install-deps --sign
--signing-admin
depends_on:
- initialize
environment:
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: build-plugins
- commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
image: grafana/build-container:1.4.8
name: validate-scuemata
- commands:
- '# Make sure the git tree is clean.'
- '# Stashing changes, since packages that were produced in build-backend step are
needed.'
- git stash
- ./bin/linux-amd64/grafana-cli cue gen-ts --grafana-root .
- '# The above command generates Typescript files (*.gen.ts) from all appropriate
.cue files.'
- '# It is required that the generated Typescript be in sync with the input CUE
files.'
- '# ...Modulo eslint auto-fixes...:'
- yarn run eslint . --ext .gen.ts --fix
- '# If any filenames are emitted by the below script, run the generator command
`grafana-cli cue gen-ts` locally and commit the result.'
- ./scripts/clean-git-or-error.sh
- '# Un-stash changes.'
- git stash pop
depends_on:
- validate-scuemata
image: grafana/build-container:1.4.8
name: ensure-cuetsified
- commands:
- ./bin/grabpl lint-backend --edition enterprise2
depends_on:
- initialize
environment:
CGO_ENABLED: "1"
image: grafana/build-container:1.4.8
name: lint-backend-enterprise2
- commands:
- ./bin/grabpl test-backend --edition enterprise2
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-enterprise2
- commands:
- ./bin/grabpl integration-tests --edition enterprise2
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-integration-enterprise2
- commands:
- ./bin/grabpl build-backend --jobs 8 --edition enterprise2 --github-token $${GITHUB_TOKEN}
--no-pull-enterprise v7.3.0-test
depends_on:
- initialize
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: build-backend-enterprise2
- commands:
- ./bin/grabpl package --jobs 8 --edition enterprise --github-token $${GITHUB_TOKEN}
--no-pull-enterprise --sign v7.3.0-test
depends_on:
- build-plugins
- build-backend
- build-frontend
- build-backend-enterprise2
- test-backend-enterprise2
environment:
GITHUB_TOKEN:
from_secret: github_token
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: package
- commands:
- yarn run cypress install
depends_on:
- package
image: grafana/ci-e2e:12.19.0-1
name: cypress
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./e2e/start-server
depends_on:
- package
detach: true
environment:
PACKAGE_FILE: dist/grafana-enterprise-*linux-amd64.tar.gz
PORT: 3001
RUNDIR: e2e/tmp-grafana-enterprise
image: grafana/build-container:1.4.8
name: end-to-end-tests-server
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-dashboards-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite smoke-tests-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-smoke-tests-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite panels-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-panels-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite various-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-various-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ls dist/*.tar.gz*
- cp dist/*.tar.gz* packaging/docker/
depends_on:
- package
image: grafana/build-container:1.4.8
name: copy-packages-for-docker
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition enterprise --shouldSave
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition enterprise --shouldSave --ubuntu
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images-ubuntu
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- dockerize -wait tcp://redis:6379/0 -timeout 120s
- ./bin/grabpl integration-tests
depends_on:
- grabpl
environment:
REDIS_URL: redis://redis:6379/0
image: grafana/build-container:1.4.8
name: redis-integration-tests
- commands:
- dockerize -wait tcp://memcached:11211 -timeout 120s
- ./bin/grabpl integration-tests
depends_on:
- grabpl
environment:
MEMCACHED_HOSTS: memcached:11211
image: grafana/build-container:1.4.8
name: memcached-integration-tests
- commands:
- ./bin/grabpl upload-cdn --edition enterprise --bucket "grafana-static-assets"
depends_on:
- package
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-cdn-assets
- commands:
- ./bin/grabpl upload-packages --edition enterprise --packages-bucket grafana-downloads-test
depends_on:
- package
- redis-integration-tests
- memcached-integration-tests
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-packages
- commands:
- ./bin/grabpl package --jobs 8 --edition enterprise2 --github-token $${GITHUB_TOKEN}
--no-pull-enterprise --sign v7.3.0-test
depends_on:
- build-plugins
- build-backend
- build-frontend
- build-backend-enterprise2
- test-backend-enterprise2
environment:
GITHUB_TOKEN:
from_secret: github_token
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: package-enterprise2
- commands:
- ./bin/grabpl upload-cdn --edition enterprise2 --bucket "grafana-static-assets"
depends_on:
- package-enterprise2
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-cdn-assets-enterprise2
- commands:
- ./bin/grabpl upload-packages --edition enterprise2 --packages-bucket grafana-downloads-test
depends_on:
- package-enterprise2
- redis-integration-tests
- memcached-integration-tests
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-packages-enterprise2
trigger:
event:
- custom
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
- name: postgres
temp:
medium: memory
- name: mysql
temp:
medium: memory
---
clone:
disable: true
depends_on:
- enterprise-build-test-release
image_pull_secrets:
- dockerconfigjson
kind: pipeline
name: enterprise-windows-test-release
platform:
arch: amd64
os: windows
version: "1809"
services: []
steps:
- commands:
- echo $env:DRONE_RUNNER_NAME
image: mcr.microsoft.com/windows:1809
name: identify-runner
- commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/windows/grabpl.exe
-OutFile grabpl.exe
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
- git checkout main
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/ci-wix:0.1.1
name: clone
- commands:
- cp -r grafana-enterprise C:\App\grafana-enterprise
- rm -r -force grafana-enterprise
- cp grabpl.exe C:\App\grabpl.exe
- rm -force grabpl.exe
- C:\App\grabpl.exe init-enterprise --github-token $$env:GITHUB_TOKEN C:\App\grafana-enterprise
- cp C:\App\grabpl.exe grabpl.exe
depends_on:
- clone
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/ci-wix:0.1.1
name: initialize
- commands:
- $$gcpKey = $$env:GCP_KEY
- '[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($$gcpKey))
> gcpkey.json'
- dos2unix gcpkey.json
- gcloud auth activate-service-account --key-file=gcpkey.json
- rm gcpkey.json
- cp C:\App\nssm-2.24.zip .
- .\grabpl.exe windows-installer --edition enterprise --packages-bucket grafana-downloads-test
v7.3.0-test
- $$fname = ((Get-Childitem grafana*.msi -name) -split "`n")[0]
- gsutil cp $$fname gs://grafana-downloads-test/enterprise/release/
- gsutil cp "$$fname.sha256" gs://grafana-downloads-test/enterprise/release/
depends_on:
- initialize
environment:
GCP_KEY:
from_secret: gcp_key
GITHUB_TOKEN:
from_secret: github_token
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/ci-wix:0.1.1
name: build-windows-installer
trigger:
event:
- custom
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
depends_on:
- oss-build-test-release
- oss-windows-test-release
- enterprise-build-test-release
- enterprise-windows-test-release
kind: pipeline
name: publish-test-release
node:
type: no-parallel
platform:
arch: amd64
os: linux
services: []
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- make gen-go
- ./bin/grabpl verify-version v7.3.0-test
image: grafana/build-container:1.4.8
name: initialize
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- ./bin/grabpl store-packages --edition oss --gcp-key /tmp/gcpkey.json --deb-db-bucket
grafana-testing-aptly-db --deb-repo-bucket grafana-testing-repo --packages-bucket
grafana-downloads-test --rpm-repo-bucket grafana-testing-repo --simulate-release
v7.3.0-test
depends_on:
- initialize
environment:
GCP_KEY:
from_secret: gcp_key
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_COM_API_KEY:
from_secret: grafana_api_key
image: grafana/grafana-ci-deploy:1.3.1
name: store-packages-oss
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- ./bin/grabpl store-packages --edition enterprise --gcp-key /tmp/gcpkey.json --deb-db-bucket
grafana-testing-aptly-db --deb-repo-bucket grafana-testing-repo --packages-bucket
grafana-downloads-test --rpm-repo-bucket grafana-testing-repo --simulate-release
v7.3.0-test
depends_on:
- initialize
environment:
GCP_KEY:
from_secret: gcp_key
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_COM_API_KEY:
from_secret: grafana_api_key
image: grafana/grafana-ci-deploy:1.3.1
name: store-packages-enterprise
trigger:
event:
- custom
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
depends_on:
- oss-build-test-release
- oss-windows-test-release
- enterprise-build-test-release
- enterprise-windows-test-release
- publish-test-release
kind: pipeline
name: notify-test-release
platform:
arch: amd64
os: linux
steps:
- image: plugins/slack
name: slack
settings:
channel: grafana-ci-notifications
template: |-
Build {{build.number}} failed for commit: <https://github.com/{{repo.owner}}/{{repo.name}}/commit/{{build.commit}}|{{ truncate build.commit 8 }}>: {{build.link}}
Branch: <https://github.com/{{ repo.owner }}/{{ repo.name }}/commits/{{ build.branch }}|{{ build.branch }}>
Author: {{build.author}}
webhook:
from_secret: slack_webhook
trigger:
event:
- custom
status:
- failure
type: docker
---
depends_on: []
kind: pipeline
name: oss-build-release-branch
node:
type: no-parallel
platform:
arch: amd64
os: linux
services:
- environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_DB: grafanatest
POSTGRES_PASSWORD: grafanatest
POSTGRES_USER: grafanatest
image: postgres:12.3-alpine
name: postgres
volumes:
- name: postgres
path: /var/lib/postgresql/data/pgdata
- environment:
MYSQL_DATABASE: grafana_tests
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_USER: grafana
image: mysql:5.6.48
name: mysql
volumes:
- name: mysql
path: /var/lib/mysql
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- make gen-go
- ./bin/grabpl gen-version --build-id ${DRONE_BUILD_NUMBER}
- yarn install --immutable
image: grafana/build-container:1.4.8
name: initialize
- commands:
- |-
echo -e "unknwon
referer
errorstring
eror
iam
wan" > words_to_ignore.txt
- codespell -I words_to_ignore.txt docs/
- rm words_to_ignore.txt
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: codespell
- commands:
- ./bin/grabpl shellcheck
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: shellcheck
- commands:
- ./bin/grabpl lint-backend --edition oss
depends_on:
- initialize
environment:
CGO_ENABLED: "1"
image: grafana/build-container:1.4.8
name: lint-backend
- commands:
- yarn run prettier:check
- yarn run lint
- yarn run i18n:compile
- yarn run typecheck
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: lint-frontend
- commands:
- ./bin/grabpl test-backend --edition oss
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend
- commands:
- ./bin/grabpl integration-tests --edition oss
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-integration
- commands:
- yarn run ci:test-frontend
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: test-frontend
- commands:
- apt-get update
- apt-get install -yq postgresql-client
- dockerize -wait tcp://postgres:5432 -timeout 120s
- psql -p 5432 -h postgres -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql
- go clean -testcache
- ./bin/grabpl integration-tests --database postgres
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: postgres
PGPASSWORD: grafanatest
POSTGRES_HOST: postgres
image: grafana/build-container:1.4.8
name: postgres-integration-tests
- commands:
- apt-get update
- apt-get install -yq default-mysql-client
- dockerize -wait tcp://mysql:3306 -timeout 120s
- cat devenv/docker/blocks/mysql_tests/setup.sql | mysql -h mysql -P 3306 -u root
-prootpass
- go clean -testcache
- ./bin/grabpl integration-tests --database mysql
depends_on:
- grabpl
environment:
GRAFANA_TEST_DB: mysql
MYSQL_HOST: mysql
image: grafana/build-container:1.4.8
name: mysql-integration-tests
- commands:
- ./bin/grabpl build-backend --jobs 8 --edition oss --build-id ${DRONE_BUILD_NUMBER}
--no-pull-enterprise
depends_on:
- initialize
environment: {}
image: grafana/build-container:1.4.8
name: build-backend
- commands:
- ./bin/grabpl build-frontend --jobs 8 --no-install-deps --edition oss --build-id
${DRONE_BUILD_NUMBER} --no-pull-enterprise
depends_on:
- initialize
environment:
NODE_OPTIONS: --max_old_space_size=8192
image: grafana/build-container:1.4.8
name: build-frontend
- commands:
- ./bin/grabpl build-plugins --jobs 8 --edition oss --no-install-deps --sign --signing-admin
depends_on:
- initialize
environment:
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: build-plugins
- commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
image: grafana/build-container:1.4.8
name: validate-scuemata
- commands:
- '# Make sure the git tree is clean.'
- '# Stashing changes, since packages that were produced in build-backend step are
needed.'
- git stash
- ./bin/linux-amd64/grafana-cli cue gen-ts --grafana-root .
- '# The above command generates Typescript files (*.gen.ts) from all appropriate
.cue files.'
- '# It is required that the generated Typescript be in sync with the input CUE
files.'
- '# ...Modulo eslint auto-fixes...:'
- yarn run eslint . --ext .gen.ts --fix
- '# If any filenames are emitted by the below script, run the generator command
`grafana-cli cue gen-ts` locally and commit the result.'
- ./scripts/clean-git-or-error.sh
- '# Un-stash changes.'
- git stash pop
depends_on:
- validate-scuemata
image: grafana/build-container:1.4.8
name: ensure-cuetsified
- commands:
- ./bin/grabpl package --jobs 8 --edition oss --build-id ${DRONE_BUILD_NUMBER} --no-pull-enterprise
--sign
depends_on:
- build-plugins
- build-backend
- build-frontend
environment:
GITHUB_TOKEN:
from_secret: github_token
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: package
- commands:
- yarn run cypress install
depends_on:
- package
image: grafana/ci-e2e:12.19.0-1
name: cypress
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./e2e/start-server
depends_on:
- package
detach: true
environment:
PORT: 3001
image: grafana/build-container:1.4.8
name: end-to-end-tests-server
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-dashboards-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite smoke-tests-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-smoke-tests-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite panels-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-panels-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite various-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-various-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ls dist/*.tar.gz*
- cp dist/*.tar.gz* packaging/docker/
depends_on:
- package
image: grafana/build-container:1.4.8
name: copy-packages-for-docker
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition oss --shouldSave
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition oss --shouldSave --ubuntu
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images-ubuntu
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- yarn storybook:build
- ./bin/grabpl verify-storybook
depends_on:
- build-frontend
environment:
NODE_OPTIONS: --max_old_space_size=4096
image: grafana/build-container:1.4.8
name: build-storybook
- commands:
- ./bin/grabpl upload-cdn --edition oss --bucket "grafana-static-assets"
depends_on:
- end-to-end-tests-server
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-cdn-assets
- commands:
- ./bin/grabpl upload-packages --edition oss --packages-bucket grafana-downloads
depends_on:
- end-to-end-tests-dashboards-suite
- end-to-end-tests-panels-suite
- end-to-end-tests-smoke-tests-suite
- end-to-end-tests-various-suite
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-packages
trigger:
ref:
- refs/heads/v[0-9]*
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
- name: postgres
temp:
medium: memory
- name: mysql
temp:
medium: memory
---
depends_on:
- oss-build-release-branch
kind: pipeline
name: oss-windows-release-branch
platform:
arch: amd64
os: windows
version: "1809"
services: []
steps:
- commands:
- echo $env:DRONE_RUNNER_NAME
image: mcr.microsoft.com/windows:1809
name: identify-runner
- commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/windows/grabpl.exe
-OutFile grabpl.exe
image: grafana/ci-wix:0.1.1
name: initialize
- commands:
- $$gcpKey = $$env:GCP_KEY
- '[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($$gcpKey))
> gcpkey.json'
- dos2unix gcpkey.json
- gcloud auth activate-service-account --key-file=gcpkey.json
- rm gcpkey.json
- cp C:\App\nssm-2.24.zip .
depends_on:
- initialize
environment:
GCP_KEY:
from_secret: gcp_key
GITHUB_TOKEN:
from_secret: github_token
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/ci-wix:0.1.1
name: build-windows-installer
trigger:
ref:
- refs/heads/v[0-9]*
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
clone:
disable: true
depends_on: []
image_pull_secrets:
- dockerconfigjson
kind: pipeline
name: enterprise-build-release-branch
node:
type: no-parallel
platform:
arch: amd64
os: linux
services:
- environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_DB: grafanatest
POSTGRES_PASSWORD: grafanatest
POSTGRES_USER: grafanatest
image: postgres:12.3-alpine
name: postgres
volumes:
- name: postgres
path: /var/lib/postgresql/data/pgdata
- environment:
MYSQL_DATABASE: grafana_tests
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_USER: grafana
image: mysql:5.6.48
name: mysql
volumes:
- name: mysql
path: /var/lib/mysql
- environment: {}
image: redis:6.2.1-alpine
name: redis
- environment: {}
image: memcached:1.6.9-alpine
name: memcached
steps:
- commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/grabpl
- chmod +x bin/grabpl
image: byrnedo/alpine-curl:0.1.8
name: grabpl
- commands:
- echo $DRONE_RUNNER_NAME
image: alpine:3.14.3
name: identify-runner
- commands:
- git clone "https://$${GITHUB_TOKEN}@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
- git checkout ${DRONE_BRANCH}
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: clone-enterprise
- commands:
- mv bin/grabpl /tmp/
- rmdir bin
- mv grafana-enterprise /tmp/
- /tmp/grabpl init-enterprise --github-token $${GITHUB_TOKEN} /tmp/grafana-enterprise
- mv /tmp/grafana-enterprise/deployment_tools_config.json deployment_tools_config.json
- mkdir bin
- mv /tmp/grabpl bin/
- make gen-go
- ./bin/grabpl gen-version --build-id ${DRONE_BUILD_NUMBER}
- yarn install --immutable
depends_on:
- clone-enterprise
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/build-container:1.4.8
name: initialize
- commands:
- |-
echo -e "unknwon
referer
errorstring
eror
iam
wan" > words_to_ignore.txt
- codespell -I words_to_ignore.txt docs/
- rm words_to_ignore.txt
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: codespell
- commands:
- ./bin/grabpl shellcheck
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: shellcheck
- commands:
- ./bin/grabpl lint-backend --edition enterprise
depends_on:
- initialize
environment:
CGO_ENABLED: "1"
image: grafana/build-container:1.4.8
name: lint-backend
- commands:
- yarn run prettier:check
- yarn run lint
- yarn run i18n:compile
- yarn run typecheck
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: lint-frontend
- commands:
- ./bin/grabpl test-backend --edition enterprise
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend
- commands:
- ./bin/grabpl integration-tests --edition enterprise
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-integration
- commands:
- yarn run ci:test-frontend
depends_on:
- initialize
environment:
TEST_MAX_WORKERS: 50%
image: grafana/build-container:1.4.8
name: test-frontend
- commands:
- apt-get update
- apt-get install -yq postgresql-client
- dockerize -wait tcp://postgres:5432 -timeout 120s
- psql -p 5432 -h postgres -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql
- go clean -testcache
- ./bin/grabpl integration-tests --database postgres
depends_on:
- initialize
environment:
GRAFANA_TEST_DB: postgres
PGPASSWORD: grafanatest
POSTGRES_HOST: postgres
image: grafana/build-container:1.4.8
name: postgres-integration-tests
- commands:
- apt-get update
- apt-get install -yq default-mysql-client
- dockerize -wait tcp://mysql:3306 -timeout 120s
- cat devenv/docker/blocks/mysql_tests/setup.sql | mysql -h mysql -P 3306 -u root
-prootpass
- go clean -testcache
- ./bin/grabpl integration-tests --database mysql
depends_on:
- initialize
environment:
GRAFANA_TEST_DB: mysql
MYSQL_HOST: mysql
image: grafana/build-container:1.4.8
name: mysql-integration-tests
- commands:
- ./bin/grabpl build-backend --jobs 8 --edition enterprise --build-id ${DRONE_BUILD_NUMBER}
--no-pull-enterprise
depends_on:
- initialize
environment: {}
image: grafana/build-container:1.4.8
name: build-backend
- commands:
- ./bin/grabpl build-frontend --jobs 8 --no-install-deps --edition enterprise --build-id
${DRONE_BUILD_NUMBER} --no-pull-enterprise
depends_on:
- initialize
environment:
NODE_OPTIONS: --max_old_space_size=8192
image: grafana/build-container:1.4.8
name: build-frontend
- commands:
- ./bin/grabpl build-plugins --jobs 8 --edition enterprise --no-install-deps --sign
--signing-admin
depends_on:
- initialize
environment:
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: build-plugins
- commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
image: grafana/build-container:1.4.8
name: validate-scuemata
- commands:
- '# Make sure the git tree is clean.'
- '# Stashing changes, since packages that were produced in build-backend step are
needed.'
- git stash
- ./bin/linux-amd64/grafana-cli cue gen-ts --grafana-root .
- '# The above command generates Typescript files (*.gen.ts) from all appropriate
.cue files.'
- '# It is required that the generated Typescript be in sync with the input CUE
files.'
- '# ...Modulo eslint auto-fixes...:'
- yarn run eslint . --ext .gen.ts --fix
- '# If any filenames are emitted by the below script, run the generator command
`grafana-cli cue gen-ts` locally and commit the result.'
- ./scripts/clean-git-or-error.sh
- '# Un-stash changes.'
- git stash pop
depends_on:
- validate-scuemata
image: grafana/build-container:1.4.8
name: ensure-cuetsified
- commands:
- ./bin/grabpl lint-backend --edition enterprise2
depends_on:
- initialize
environment:
CGO_ENABLED: "1"
image: grafana/build-container:1.4.8
name: lint-backend-enterprise2
- commands:
- ./bin/grabpl test-backend --edition enterprise2
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-enterprise2
- commands:
- ./bin/grabpl integration-tests --edition enterprise2
depends_on:
- initialize
image: grafana/build-container:1.4.8
name: test-backend-integration-enterprise2
- commands:
- ./bin/grabpl build-backend --jobs 8 --edition enterprise2 --build-id ${DRONE_BUILD_NUMBER}
--variants linux-x64 --no-pull-enterprise
depends_on:
- initialize
environment: {}
image: grafana/build-container:1.4.8
name: build-backend-enterprise2
- commands:
- ./bin/grabpl package --jobs 8 --edition enterprise --build-id ${DRONE_BUILD_NUMBER}
--no-pull-enterprise --sign
depends_on:
- build-plugins
- build-backend
- build-frontend
- build-backend-enterprise2
- test-backend-enterprise2
environment:
GITHUB_TOKEN:
from_secret: github_token
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: package
- commands:
- yarn run cypress install
depends_on:
- package
image: grafana/ci-e2e:12.19.0-1
name: cypress
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./e2e/start-server
depends_on:
- package
detach: true
environment:
PACKAGE_FILE: dist/grafana-enterprise-*linux-amd64.tar.gz
PORT: 3001
RUNDIR: e2e/tmp-grafana-enterprise
image: grafana/build-container:1.4.8
name: end-to-end-tests-server
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-dashboards-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite smoke-tests-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-smoke-tests-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite panels-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-panels-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ./bin/grabpl e2e-tests --port 3001 --suite various-suite --tries 3
depends_on:
- cypress
environment:
HOST: end-to-end-tests-server
image: grafana/ci-e2e:12.19.0-1
name: end-to-end-tests-various-suite
volumes:
- name: cypress_cache
path: /root/.cache/Cypress
- commands:
- ls dist/*.tar.gz*
- cp dist/*.tar.gz* packaging/docker/
depends_on:
- package
image: grafana/build-container:1.4.8
name: copy-packages-for-docker
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition enterprise --shouldSave
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- ./bin/grabpl build-docker --edition enterprise --shouldSave --ubuntu
depends_on:
- copy-packages-for-docker
environment:
GCP_KEY:
from_secret: gcp_key
image: google/cloud-sdk
name: package-docker-images-ubuntu
volumes:
- name: docker
path: /var/run/docker.sock
- commands:
- yarn storybook:build
- ./bin/grabpl verify-storybook
depends_on:
- build-frontend
environment:
NODE_OPTIONS: --max_old_space_size=4096
image: grafana/build-container:1.4.8
name: build-storybook
- commands:
- dockerize -wait tcp://redis:6379/0 -timeout 120s
- ./bin/grabpl integration-tests
depends_on:
- initialize
environment:
REDIS_URL: redis://redis:6379/0
image: grafana/build-container:1.4.8
name: redis-integration-tests
- commands:
- dockerize -wait tcp://memcached:11211 -timeout 120s
- ./bin/grabpl integration-tests
depends_on:
- initialize
environment:
MEMCACHED_HOSTS: memcached:11211
image: grafana/build-container:1.4.8
name: memcached-integration-tests
- commands:
- ./bin/grabpl upload-cdn --edition enterprise --bucket "grafana-static-assets"
depends_on:
- package
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-cdn-assets
- commands:
- ./bin/grabpl upload-packages --edition enterprise --packages-bucket grafana-downloads
depends_on:
- package
- redis-integration-tests
- memcached-integration-tests
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-packages
- commands:
- ./bin/grabpl package --jobs 8 --edition enterprise2 --build-id ${DRONE_BUILD_NUMBER}
--no-pull-enterprise --variants linux-x64 --sign
depends_on:
- build-plugins
- build-backend
- build-frontend
- build-backend-enterprise2
- test-backend-enterprise2
environment:
GITHUB_TOKEN:
from_secret: github_token
GPG_KEY_PASSWORD:
from_secret: gpg_key_password
GPG_PRIV_KEY:
from_secret: gpg_priv_key
GPG_PUB_KEY:
from_secret: gpg_pub_key
GRAFANA_API_KEY:
from_secret: grafana_api_key
image: grafana/build-container:1.4.8
name: package-enterprise2
- commands:
- ./bin/grabpl upload-cdn --edition enterprise2 --bucket "grafana-static-assets"
depends_on:
- package-enterprise2
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-cdn-assets-enterprise2
- commands:
- ./bin/grabpl upload-packages --edition enterprise2 --packages-bucket grafana-downloads-enterprise2
depends_on:
- package-enterprise2
- redis-integration-tests
- memcached-integration-tests
environment:
GCP_GRAFANA_UPLOAD_KEY:
from_secret: gcp_key
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/grafana-ci-deploy:1.3.1
name: upload-packages-enterprise2
trigger:
ref:
- refs/heads/v[0-9]*
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
- name: postgres
temp:
medium: memory
- name: mysql
temp:
medium: memory
---
clone:
disable: true
depends_on:
- enterprise-build-release-branch
image_pull_secrets:
- dockerconfigjson
kind: pipeline
name: enterprise-windows-release-branch
platform:
arch: amd64
os: windows
version: "1809"
services: []
steps:
- commands:
- echo $env:DRONE_RUNNER_NAME
image: mcr.microsoft.com/windows:1809
name: identify-runner
- commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.7.8/windows/grabpl.exe
-OutFile grabpl.exe
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
- git checkout $$env:DRONE_BRANCH
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/ci-wix:0.1.1
name: clone
- commands:
- cp -r grafana-enterprise C:\App\grafana-enterprise
- rm -r -force grafana-enterprise
- cp grabpl.exe C:\App\grabpl.exe
- rm -force grabpl.exe
- C:\App\grabpl.exe init-enterprise --github-token $$env:GITHUB_TOKEN C:\App\grafana-enterprise
- cp C:\App\grabpl.exe grabpl.exe
depends_on:
- clone
environment:
GITHUB_TOKEN:
from_secret: github_token
image: grafana/ci-wix:0.1.1
name: initialize
- commands:
- $$gcpKey = $$env:GCP_KEY
- '[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($$gcpKey))
> gcpkey.json'
- dos2unix gcpkey.json
- gcloud auth activate-service-account --key-file=gcpkey.json
- rm gcpkey.json
- cp C:\App\nssm-2.24.zip .
depends_on:
- initialize
environment:
GCP_KEY:
from_secret: gcp_key
GITHUB_TOKEN:
from_secret: github_token
PRERELEASE_BUCKET:
from_secret: prerelease_bucket
image: grafana/ci-wix:0.1.1
name: build-windows-installer
trigger:
ref:
- refs/heads/v[0-9]*
type: docker
volumes:
- name: cypress_cache
temp: {}
- host:
path: /var/run/docker.sock
name: docker
---
kind: pipeline
name: scan-grafana/grafana:latest-image
platform:
arch: amd64
os: linux
steps:
- commands:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:latest
image: aquasec/trivy:0.21.0
name: scan-unkown-low-medium-vulnerabilities
- commands:
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:latest
image: aquasec/trivy:0.21.0
name: scan-high-critical-vulnerabilities
- image: plugins/slack
name: slack-notify-failure
settings:
channel: grafana-backend-ops
template: 'Nightly docker image scan job for grafana/grafana:latest failed: {{build.link}}'
webhook:
from_secret: slack_webhook_backend
when:
status: failure
trigger:
cron: nightly
event: cron
type: docker
---
kind: pipeline
name: scan-grafana/grafana:main-image
platform:
arch: amd64
os: linux
steps:
- commands:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:main
image: aquasec/trivy:0.21.0
name: scan-unkown-low-medium-vulnerabilities
- commands:
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:main
image: aquasec/trivy:0.21.0
name: scan-high-critical-vulnerabilities
- image: plugins/slack
name: slack-notify-failure
settings:
channel: grafana-backend-ops
template: 'Nightly docker image scan job for grafana/grafana:main failed: {{build.link}}'
webhook:
from_secret: slack_webhook_backend
when:
status: failure
trigger:
cron: nightly
event: cron
type: docker
---
kind: pipeline
name: scan-grafana/grafana:latest-ubuntu-image
platform:
arch: amd64
os: linux
steps:
- commands:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:latest-ubuntu
image: aquasec/trivy:0.21.0
name: scan-unkown-low-medium-vulnerabilities
- commands:
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:latest-ubuntu
image: aquasec/trivy:0.21.0
name: scan-high-critical-vulnerabilities
- image: plugins/slack
name: slack-notify-failure
settings:
channel: grafana-backend-ops
template: 'Nightly docker image scan job for grafana/grafana:latest-ubuntu failed:
{{build.link}}'
webhook:
from_secret: slack_webhook_backend
when:
status: failure
trigger:
cron: nightly
event: cron
type: docker
---
kind: pipeline
name: scan-grafana/grafana:main-ubuntu-image
platform:
arch: amd64
os: linux
steps:
- commands:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:main-ubuntu
image: aquasec/trivy:0.21.0
name: scan-unkown-low-medium-vulnerabilities
- commands:
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:main-ubuntu
image: aquasec/trivy:0.21.0
name: scan-high-critical-vulnerabilities
- image: plugins/slack
name: slack-notify-failure
settings:
channel: grafana-backend-ops
template: 'Nightly docker image scan job for grafana/grafana:main-ubuntu failed:
{{build.link}}'
webhook:
from_secret: slack_webhook_backend
when:
status: failure
trigger:
cron: nightly
event: cron
type: docker
---
get:
name: .dockerconfigjson
path: secret/data/common/gcr
kind: secret
name: dockerconfigjson
---
get:
name: pat
path: infra/data/ci/github/grafanabot
kind: secret
name: github_token
---
get:
name: machine-user-token
path: infra/data/ci/drone
kind: secret
name: drone_token
---
get:
name: bucket
path: infra/data/ci/grafana/prerelease
kind: secret
name: prerelease_bucket
---
kind: signature
hmac: 7152fbeb6bfddcde80b1a9c10bf203a14aacc5027bb0b2e9c09e81015cef3c58
...