mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
CI: Move release integration pipeline to standalone promotion pipeline (#65787)
This commit is contained in:
parent
06ea490cc2
commit
e9aef20eb4
@ -14,6 +14,7 @@ load(
|
|||||||
"artifacts_page_pipeline",
|
"artifacts_page_pipeline",
|
||||||
"enterprise2_pipelines",
|
"enterprise2_pipelines",
|
||||||
"enterprise_pipelines",
|
"enterprise_pipelines",
|
||||||
|
"integration_test_pipelines",
|
||||||
"oss_pipelines",
|
"oss_pipelines",
|
||||||
"publish_artifacts_pipelines",
|
"publish_artifacts_pipelines",
|
||||||
"publish_npm_pipelines",
|
"publish_npm_pipelines",
|
||||||
@ -52,6 +53,7 @@ def main(_ctx):
|
|||||||
publish_packages_pipeline() +
|
publish_packages_pipeline() +
|
||||||
artifacts_page_pipeline() +
|
artifacts_page_pipeline() +
|
||||||
version_branch_pipelines() +
|
version_branch_pipelines() +
|
||||||
|
integration_test_pipelines() +
|
||||||
cronjobs() +
|
cronjobs() +
|
||||||
secrets()
|
secrets()
|
||||||
)
|
)
|
||||||
|
600
.drone.yml
600
.drone.yml
@ -2372,12 +2372,6 @@ volumes:
|
|||||||
- host:
|
- host:
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
name: docker
|
name: docker
|
||||||
- name: postgres
|
|
||||||
temp:
|
|
||||||
medium: memory
|
|
||||||
- name: mysql
|
|
||||||
temp:
|
|
||||||
medium: memory
|
|
||||||
---
|
---
|
||||||
clone:
|
clone:
|
||||||
retries: 3
|
retries: 3
|
||||||
@ -2510,132 +2504,12 @@ volumes:
|
|||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
name: docker
|
name: docker
|
||||||
---
|
---
|
||||||
clone:
|
|
||||||
retries: 3
|
|
||||||
depends_on: []
|
|
||||||
environment:
|
|
||||||
EDITION: oss
|
|
||||||
image_pull_secrets:
|
|
||||||
- dockerconfigjson
|
|
||||||
kind: pipeline
|
|
||||||
name: release-oss-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.7.39
|
|
||||||
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/v3.0.30/grabpl
|
|
||||||
- chmod +x bin/grabpl
|
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
|
||||||
name: grabpl
|
|
||||||
- commands:
|
|
||||||
- echo $DRONE_RUNNER_NAME
|
|
||||||
image: alpine:3.17.1
|
|
||||||
name: identify-runner
|
|
||||||
- commands:
|
|
||||||
- '# It is required that code generated from Thema/CUE be committed and in sync
|
|
||||||
with its inputs.'
|
|
||||||
- '# The following command will fail if running code generators produces any diff
|
|
||||||
in output.'
|
|
||||||
- CODEGEN_VERIFY=1 make gen-cue
|
|
||||||
depends_on: []
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
name: verify-gen-cue
|
|
||||||
- commands:
|
|
||||||
- '# It is required that generated jsonnet is committed and in sync with its inputs.'
|
|
||||||
- '# The following command will fail if running code generators produces any diff
|
|
||||||
in output.'
|
|
||||||
- CODEGEN_VERIFY=1 make gen-jsonnet
|
|
||||||
depends_on: []
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
name: verify-gen-jsonnet
|
|
||||||
- commands:
|
|
||||||
- make gen-go
|
|
||||||
depends_on:
|
|
||||||
- verify-gen-cue
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
name: wire-install
|
|
||||||
- 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
|
|
||||||
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
|
||||||
-timeout=5m {}'
|
|
||||||
depends_on:
|
|
||||||
- wire-install
|
|
||||||
environment:
|
|
||||||
GRAFANA_TEST_DB: postgres
|
|
||||||
PGPASSWORD: grafanatest
|
|
||||||
POSTGRES_HOST: postgres
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
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
|
|
||||||
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
|
||||||
-timeout=5m {}'
|
|
||||||
depends_on:
|
|
||||||
- wire-install
|
|
||||||
environment:
|
|
||||||
GRAFANA_TEST_DB: mysql
|
|
||||||
MYSQL_HOST: mysql
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
name: mysql-integration-tests
|
|
||||||
trigger:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- promote
|
|
||||||
ref:
|
|
||||||
- refs/tags/v*
|
|
||||||
type: docker
|
|
||||||
volumes:
|
|
||||||
- host:
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
name: docker
|
|
||||||
- name: postgres
|
|
||||||
temp:
|
|
||||||
medium: memory
|
|
||||||
- name: mysql
|
|
||||||
temp:
|
|
||||||
medium: memory
|
|
||||||
---
|
|
||||||
clone:
|
clone:
|
||||||
retries: 3
|
retries: 3
|
||||||
depends_on:
|
depends_on:
|
||||||
- release-oss-build-e2e-publish
|
- release-oss-build-e2e-publish
|
||||||
- release-oss-test-frontend
|
- release-oss-test-frontend
|
||||||
- release-oss-test-backend
|
- release-oss-test-backend
|
||||||
- release-oss-integration-tests
|
|
||||||
environment:
|
environment:
|
||||||
EDITION: oss
|
EDITION: oss
|
||||||
image_pull_secrets:
|
image_pull_secrets:
|
||||||
@ -2983,12 +2857,6 @@ volumes:
|
|||||||
- host:
|
- host:
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
name: docker
|
name: docker
|
||||||
- name: postgres
|
|
||||||
temp:
|
|
||||||
medium: memory
|
|
||||||
- name: mysql
|
|
||||||
temp:
|
|
||||||
medium: memory
|
|
||||||
---
|
---
|
||||||
clone:
|
clone:
|
||||||
disable: true
|
disable: true
|
||||||
@ -3183,187 +3051,12 @@ volumes:
|
|||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
name: docker
|
name: docker
|
||||||
---
|
---
|
||||||
clone:
|
|
||||||
disable: true
|
|
||||||
depends_on: []
|
|
||||||
environment:
|
|
||||||
EDITION: enterprise
|
|
||||||
image_pull_secrets:
|
|
||||||
- dockerconfigjson
|
|
||||||
kind: pipeline
|
|
||||||
name: release-enterprise-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.7.39
|
|
||||||
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/v3.0.30/grabpl
|
|
||||||
- chmod +x bin/grabpl
|
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
|
||||||
name: grabpl
|
|
||||||
- commands:
|
|
||||||
- echo $DRONE_RUNNER_NAME
|
|
||||||
image: alpine:3.17.1
|
|
||||||
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.7.2
|
|
||||||
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/
|
|
||||||
depends_on:
|
|
||||||
- clone-enterprise
|
|
||||||
environment:
|
|
||||||
GITHUB_TOKEN:
|
|
||||||
from_secret: github_token
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
name: init-enterprise
|
|
||||||
- commands:
|
|
||||||
- '# It is required that code generated from Thema/CUE be committed and in sync
|
|
||||||
with its inputs.'
|
|
||||||
- '# The following command will fail if running code generators produces any diff
|
|
||||||
in output.'
|
|
||||||
- CODEGEN_VERIFY=1 make gen-cue
|
|
||||||
depends_on:
|
|
||||||
- init-enterprise
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
name: verify-gen-cue
|
|
||||||
- commands:
|
|
||||||
- '# It is required that generated jsonnet is committed and in sync with its inputs.'
|
|
||||||
- '# The following command will fail if running code generators produces any diff
|
|
||||||
in output.'
|
|
||||||
- CODEGEN_VERIFY=1 make gen-jsonnet
|
|
||||||
depends_on:
|
|
||||||
- init-enterprise
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
name: verify-gen-jsonnet
|
|
||||||
- commands:
|
|
||||||
- make gen-go
|
|
||||||
depends_on:
|
|
||||||
- verify-gen-cue
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
name: wire-install
|
|
||||||
- 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
|
|
||||||
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
|
||||||
-timeout=5m {}'
|
|
||||||
depends_on:
|
|
||||||
- wire-install
|
|
||||||
environment:
|
|
||||||
GRAFANA_TEST_DB: postgres
|
|
||||||
PGPASSWORD: grafanatest
|
|
||||||
POSTGRES_HOST: postgres
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
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
|
|
||||||
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
|
||||||
-timeout=5m {}'
|
|
||||||
depends_on:
|
|
||||||
- wire-install
|
|
||||||
environment:
|
|
||||||
GRAFANA_TEST_DB: mysql
|
|
||||||
MYSQL_HOST: mysql
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
name: mysql-integration-tests
|
|
||||||
- commands:
|
|
||||||
- dockerize -wait tcp://redis:6379/0 -timeout 120s
|
|
||||||
- go clean -testcache
|
|
||||||
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
|
||||||
-timeout=5m {}'
|
|
||||||
depends_on:
|
|
||||||
- wire-install
|
|
||||||
environment:
|
|
||||||
REDIS_URL: redis://redis:6379/0
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
name: redis-integration-tests
|
|
||||||
- commands:
|
|
||||||
- dockerize -wait tcp://memcached:11211 -timeout 120s
|
|
||||||
- go clean -testcache
|
|
||||||
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
|
||||||
-timeout=5m {}'
|
|
||||||
depends_on:
|
|
||||||
- wire-install
|
|
||||||
environment:
|
|
||||||
MEMCACHED_HOSTS: memcached:11211
|
|
||||||
image: grafana/build-container:1.7.2
|
|
||||||
name: memcached-integration-tests
|
|
||||||
trigger:
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- promote
|
|
||||||
ref:
|
|
||||||
- refs/tags/v*
|
|
||||||
type: docker
|
|
||||||
volumes:
|
|
||||||
- host:
|
|
||||||
path: /var/run/docker.sock
|
|
||||||
name: docker
|
|
||||||
- name: postgres
|
|
||||||
temp:
|
|
||||||
medium: memory
|
|
||||||
- name: mysql
|
|
||||||
temp:
|
|
||||||
medium: memory
|
|
||||||
---
|
|
||||||
clone:
|
clone:
|
||||||
disable: true
|
disable: true
|
||||||
depends_on:
|
depends_on:
|
||||||
- release-enterprise-build-e2e-publish
|
- release-enterprise-build-e2e-publish
|
||||||
- release-enterprise-test-frontend
|
- release-enterprise-test-frontend
|
||||||
- release-enterprise-test-backend
|
- release-enterprise-test-backend
|
||||||
- release-enterprise-integration-tests
|
|
||||||
environment:
|
environment:
|
||||||
EDITION: enterprise
|
EDITION: enterprise
|
||||||
image_pull_secrets:
|
image_pull_secrets:
|
||||||
@ -5317,7 +5010,6 @@ depends_on:
|
|||||||
- release-branch-oss-build-e2e-publish
|
- release-branch-oss-build-e2e-publish
|
||||||
- release-branch-oss-test-frontend
|
- release-branch-oss-test-frontend
|
||||||
- release-branch-oss-test-backend
|
- release-branch-oss-test-backend
|
||||||
- release-branch-oss-integration-tests
|
|
||||||
environment:
|
environment:
|
||||||
EDITION: oss
|
EDITION: oss
|
||||||
image_pull_secrets:
|
image_pull_secrets:
|
||||||
@ -6029,7 +5721,6 @@ depends_on:
|
|||||||
- release-branch-enterprise-build-e2e-publish
|
- release-branch-enterprise-build-e2e-publish
|
||||||
- release-branch-enterprise-test-frontend
|
- release-branch-enterprise-test-frontend
|
||||||
- release-branch-enterprise-test-backend
|
- release-branch-enterprise-test-backend
|
||||||
- release-branch-enterprise-integration-tests
|
|
||||||
environment:
|
environment:
|
||||||
EDITION: enterprise
|
EDITION: enterprise
|
||||||
image_pull_secrets:
|
image_pull_secrets:
|
||||||
@ -6348,6 +6039,295 @@ volumes:
|
|||||||
temp:
|
temp:
|
||||||
medium: memory
|
medium: memory
|
||||||
---
|
---
|
||||||
|
clone:
|
||||||
|
retries: 3
|
||||||
|
depends_on: []
|
||||||
|
environment:
|
||||||
|
EDITION: oss
|
||||||
|
image_pull_secrets:
|
||||||
|
- dockerconfigjson
|
||||||
|
kind: pipeline
|
||||||
|
name: integration-tests-oss
|
||||||
|
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.7.39
|
||||||
|
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/v3.0.30/grabpl
|
||||||
|
- chmod +x bin/grabpl
|
||||||
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
|
name: grabpl
|
||||||
|
- commands:
|
||||||
|
- echo $DRONE_RUNNER_NAME
|
||||||
|
image: alpine:3.17.1
|
||||||
|
name: identify-runner
|
||||||
|
- commands:
|
||||||
|
- '# It is required that code generated from Thema/CUE be committed and in sync
|
||||||
|
with its inputs.'
|
||||||
|
- '# The following command will fail if running code generators produces any diff
|
||||||
|
in output.'
|
||||||
|
- CODEGEN_VERIFY=1 make gen-cue
|
||||||
|
depends_on: []
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
name: verify-gen-cue
|
||||||
|
- commands:
|
||||||
|
- '# It is required that generated jsonnet is committed and in sync with its inputs.'
|
||||||
|
- '# The following command will fail if running code generators produces any diff
|
||||||
|
in output.'
|
||||||
|
- CODEGEN_VERIFY=1 make gen-jsonnet
|
||||||
|
depends_on: []
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
name: verify-gen-jsonnet
|
||||||
|
- commands:
|
||||||
|
- make gen-go
|
||||||
|
depends_on:
|
||||||
|
- verify-gen-cue
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
name: wire-install
|
||||||
|
- 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
|
||||||
|
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
||||||
|
-timeout=5m {}'
|
||||||
|
depends_on:
|
||||||
|
- wire-install
|
||||||
|
environment:
|
||||||
|
GRAFANA_TEST_DB: postgres
|
||||||
|
PGPASSWORD: grafanatest
|
||||||
|
POSTGRES_HOST: postgres
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
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
|
||||||
|
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
||||||
|
-timeout=5m {}'
|
||||||
|
depends_on:
|
||||||
|
- wire-install
|
||||||
|
environment:
|
||||||
|
GRAFANA_TEST_DB: mysql
|
||||||
|
MYSQL_HOST: mysql
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
name: mysql-integration-tests
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- promote
|
||||||
|
target: integration-tests
|
||||||
|
type: docker
|
||||||
|
volumes:
|
||||||
|
- host:
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
name: docker
|
||||||
|
- name: postgres
|
||||||
|
temp:
|
||||||
|
medium: memory
|
||||||
|
- name: mysql
|
||||||
|
temp:
|
||||||
|
medium: memory
|
||||||
|
---
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
depends_on: []
|
||||||
|
environment:
|
||||||
|
EDITION: enterprise
|
||||||
|
image_pull_secrets:
|
||||||
|
- dockerconfigjson
|
||||||
|
kind: pipeline
|
||||||
|
name: integration-tests-enterprise
|
||||||
|
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.7.39
|
||||||
|
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/v3.0.30/grabpl
|
||||||
|
- chmod +x bin/grabpl
|
||||||
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
|
name: grabpl
|
||||||
|
- commands:
|
||||||
|
- echo $DRONE_RUNNER_NAME
|
||||||
|
image: alpine:3.17.1
|
||||||
|
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.7.2
|
||||||
|
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/
|
||||||
|
depends_on:
|
||||||
|
- clone-enterprise
|
||||||
|
environment:
|
||||||
|
GITHUB_TOKEN:
|
||||||
|
from_secret: github_token
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
name: init-enterprise
|
||||||
|
- commands:
|
||||||
|
- '# It is required that code generated from Thema/CUE be committed and in sync
|
||||||
|
with its inputs.'
|
||||||
|
- '# The following command will fail if running code generators produces any diff
|
||||||
|
in output.'
|
||||||
|
- CODEGEN_VERIFY=1 make gen-cue
|
||||||
|
depends_on:
|
||||||
|
- init-enterprise
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
name: verify-gen-cue
|
||||||
|
- commands:
|
||||||
|
- '# It is required that generated jsonnet is committed and in sync with its inputs.'
|
||||||
|
- '# The following command will fail if running code generators produces any diff
|
||||||
|
in output.'
|
||||||
|
- CODEGEN_VERIFY=1 make gen-jsonnet
|
||||||
|
depends_on:
|
||||||
|
- init-enterprise
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
name: verify-gen-jsonnet
|
||||||
|
- commands:
|
||||||
|
- make gen-go
|
||||||
|
depends_on:
|
||||||
|
- verify-gen-cue
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
name: wire-install
|
||||||
|
- 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
|
||||||
|
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
||||||
|
-timeout=5m {}'
|
||||||
|
depends_on:
|
||||||
|
- wire-install
|
||||||
|
environment:
|
||||||
|
GRAFANA_TEST_DB: postgres
|
||||||
|
PGPASSWORD: grafanatest
|
||||||
|
POSTGRES_HOST: postgres
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
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
|
||||||
|
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
||||||
|
-timeout=5m {}'
|
||||||
|
depends_on:
|
||||||
|
- wire-install
|
||||||
|
environment:
|
||||||
|
GRAFANA_TEST_DB: mysql
|
||||||
|
MYSQL_HOST: mysql
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
name: mysql-integration-tests
|
||||||
|
- commands:
|
||||||
|
- dockerize -wait tcp://redis:6379/0 -timeout 120s
|
||||||
|
- go clean -testcache
|
||||||
|
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
||||||
|
-timeout=5m {}'
|
||||||
|
depends_on:
|
||||||
|
- wire-install
|
||||||
|
environment:
|
||||||
|
REDIS_URL: redis://redis:6379/0
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
name: redis-integration-tests
|
||||||
|
- commands:
|
||||||
|
- dockerize -wait tcp://memcached:11211 -timeout 120s
|
||||||
|
- go clean -testcache
|
||||||
|
- go list './pkg/...' | xargs -I {} sh -c 'go test -run Integration -covermode=atomic
|
||||||
|
-timeout=5m {}'
|
||||||
|
depends_on:
|
||||||
|
- wire-install
|
||||||
|
environment:
|
||||||
|
MEMCACHED_HOSTS: memcached:11211
|
||||||
|
image: grafana/build-container:1.7.2
|
||||||
|
name: memcached-integration-tests
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- promote
|
||||||
|
target: integration-tests
|
||||||
|
type: docker
|
||||||
|
volumes:
|
||||||
|
- host:
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
name: docker
|
||||||
|
- name: postgres
|
||||||
|
temp:
|
||||||
|
medium: memory
|
||||||
|
- name: mysql
|
||||||
|
temp:
|
||||||
|
medium: memory
|
||||||
|
---
|
||||||
clone:
|
clone:
|
||||||
retries: 3
|
retries: 3
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
@ -6634,6 +6614,6 @@ kind: secret
|
|||||||
name: enterprise2_security_prefix
|
name: enterprise2_security_prefix
|
||||||
---
|
---
|
||||||
kind: signature
|
kind: signature
|
||||||
hmac: 7ed023fb45c28415f26835221bd1e1e440c6f6796a5262da866f8ce9c4314542
|
hmac: 5854eba6447f784a354210984cb34a52f0d04a2df8387d2df1a24731e2838e9d
|
||||||
|
|
||||||
...
|
...
|
||||||
|
@ -196,6 +196,12 @@ def oss_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
|||||||
mysql_integration_tests_step(),
|
mysql_integration_tests_step(),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# We don't need to run integration tests at release time since they have
|
||||||
|
# been run multiple times before:
|
||||||
|
if ver_mode in ("release"):
|
||||||
|
integration_test_steps = []
|
||||||
|
volumes = []
|
||||||
|
|
||||||
windows_pipeline = pipeline(
|
windows_pipeline = pipeline(
|
||||||
name = "{}-oss-windows".format(ver_mode),
|
name = "{}-oss-windows".format(ver_mode),
|
||||||
edition = "oss",
|
edition = "oss",
|
||||||
@ -203,11 +209,9 @@ def oss_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
|||||||
steps = get_windows_steps(edition = "oss", ver_mode = ver_mode),
|
steps = get_windows_steps(edition = "oss", ver_mode = ver_mode),
|
||||||
platform = "windows",
|
platform = "windows",
|
||||||
depends_on = [
|
depends_on = [
|
||||||
# 'oss-build-e2e-publish-{}'.format(ver_mode),
|
|
||||||
"{}-oss-build-e2e-publish".format(ver_mode),
|
"{}-oss-build-e2e-publish".format(ver_mode),
|
||||||
"{}-oss-test-frontend".format(ver_mode),
|
"{}-oss-test-frontend".format(ver_mode),
|
||||||
"{}-oss-test-backend".format(ver_mode),
|
"{}-oss-test-backend".format(ver_mode),
|
||||||
"{}-oss-integration-tests".format(ver_mode),
|
|
||||||
],
|
],
|
||||||
environment = environment,
|
environment = environment,
|
||||||
)
|
)
|
||||||
@ -224,7 +228,10 @@ def oss_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
|||||||
),
|
),
|
||||||
test_frontend(trigger, ver_mode),
|
test_frontend(trigger, ver_mode),
|
||||||
test_backend(trigger, ver_mode),
|
test_backend(trigger, ver_mode),
|
||||||
pipeline(
|
]
|
||||||
|
|
||||||
|
if ver_mode not in ("release"):
|
||||||
|
pipelines.append(pipeline(
|
||||||
name = "{}-oss-integration-tests".format(ver_mode),
|
name = "{}-oss-integration-tests".format(ver_mode),
|
||||||
edition = "oss",
|
edition = "oss",
|
||||||
trigger = trigger,
|
trigger = trigger,
|
||||||
@ -239,9 +246,9 @@ def oss_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
|||||||
integration_test_steps,
|
integration_test_steps,
|
||||||
environment = environment,
|
environment = environment,
|
||||||
volumes = volumes,
|
volumes = volumes,
|
||||||
),
|
))
|
||||||
windows_pipeline,
|
|
||||||
]
|
pipelines.append(windows_pipeline)
|
||||||
|
|
||||||
return pipelines
|
return pipelines
|
||||||
|
|
||||||
@ -338,8 +345,16 @@ def enterprise_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
|||||||
integration_test_steps = [
|
integration_test_steps = [
|
||||||
postgres_integration_tests_step(),
|
postgres_integration_tests_step(),
|
||||||
mysql_integration_tests_step(),
|
mysql_integration_tests_step(),
|
||||||
|
redis_integration_tests_step(),
|
||||||
|
memcached_integration_tests_step(),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# We don't need to run integration tests at release time since they have
|
||||||
|
# been run multiple times before:
|
||||||
|
if ver_mode in ("release"):
|
||||||
|
integration_test_steps = []
|
||||||
|
volumes = []
|
||||||
|
|
||||||
windows_pipeline = pipeline(
|
windows_pipeline = pipeline(
|
||||||
name = "{}-enterprise-windows".format(ver_mode),
|
name = "{}-enterprise-windows".format(ver_mode),
|
||||||
edition = "enterprise",
|
edition = "enterprise",
|
||||||
@ -347,11 +362,9 @@ def enterprise_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
|||||||
steps = get_windows_steps(edition = "enterprise", ver_mode = ver_mode),
|
steps = get_windows_steps(edition = "enterprise", ver_mode = ver_mode),
|
||||||
platform = "windows",
|
platform = "windows",
|
||||||
depends_on = [
|
depends_on = [
|
||||||
# 'enterprise-build-e2e-publish-{}'.format(ver_mode),
|
|
||||||
"{}-enterprise-build-e2e-publish".format(ver_mode),
|
"{}-enterprise-build-e2e-publish".format(ver_mode),
|
||||||
"{}-enterprise-test-frontend".format(ver_mode),
|
"{}-enterprise-test-frontend".format(ver_mode),
|
||||||
"{}-enterprise-test-backend".format(ver_mode),
|
"{}-enterprise-test-backend".format(ver_mode),
|
||||||
"{}-enterprise-integration-tests".format(ver_mode),
|
|
||||||
],
|
],
|
||||||
environment = environment,
|
environment = environment,
|
||||||
)
|
)
|
||||||
@ -368,7 +381,10 @@ def enterprise_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
|||||||
),
|
),
|
||||||
test_frontend_enterprise(trigger, ver_mode, source = source),
|
test_frontend_enterprise(trigger, ver_mode, source = source),
|
||||||
test_backend_enterprise(trigger, ver_mode, source = source),
|
test_backend_enterprise(trigger, ver_mode, source = source),
|
||||||
pipeline(
|
]
|
||||||
|
|
||||||
|
if ver_mode not in ("release"):
|
||||||
|
pipelines.append(pipeline(
|
||||||
name = "{}-enterprise-integration-tests".format(ver_mode),
|
name = "{}-enterprise-integration-tests".format(ver_mode),
|
||||||
edition = "enterprise",
|
edition = "enterprise",
|
||||||
trigger = trigger,
|
trigger = trigger,
|
||||||
@ -391,16 +407,12 @@ def enterprise_pipelines(ver_mode = ver_mode, trigger = release_trigger):
|
|||||||
[
|
[
|
||||||
wire_install_step(),
|
wire_install_step(),
|
||||||
] +
|
] +
|
||||||
integration_test_steps +
|
integration_test_steps,
|
||||||
[
|
|
||||||
redis_integration_tests_step(),
|
|
||||||
memcached_integration_tests_step(),
|
|
||||||
],
|
|
||||||
environment = environment,
|
environment = environment,
|
||||||
volumes = volumes,
|
volumes = volumes,
|
||||||
),
|
))
|
||||||
windows_pipeline,
|
|
||||||
]
|
pipelines.append(windows_pipeline)
|
||||||
|
|
||||||
return pipelines
|
return pipelines
|
||||||
|
|
||||||
@ -655,3 +667,77 @@ def artifacts_page_pipeline():
|
|||||||
environment = {"EDITION": "enterprise"},
|
environment = {"EDITION": "enterprise"},
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def integration_test_pipelines():
|
||||||
|
"""
|
||||||
|
Trigger integration tests on release builds
|
||||||
|
|
||||||
|
These pipelines should be triggered when we have a release that does a lot of
|
||||||
|
cherry-picking and we still want to have all the integration tests run on that
|
||||||
|
particular build.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
List of Drone pipelines (one for enterprise and one for oss integration tests)
|
||||||
|
"""
|
||||||
|
trigger = {
|
||||||
|
"event": ["promote"],
|
||||||
|
"target": "integration-tests",
|
||||||
|
}
|
||||||
|
pipelines = []
|
||||||
|
volumes = integration_test_services_volumes()
|
||||||
|
oss_integration_test_steps = [
|
||||||
|
postgres_integration_tests_step(),
|
||||||
|
mysql_integration_tests_step(),
|
||||||
|
]
|
||||||
|
enterprise_integration_test_steps = oss_integration_test_steps + [
|
||||||
|
redis_integration_tests_step(),
|
||||||
|
memcached_integration_tests_step(),
|
||||||
|
]
|
||||||
|
source = "${DRONE_TAG}"
|
||||||
|
|
||||||
|
pipelines.append(pipeline(
|
||||||
|
name = "integration-tests-oss",
|
||||||
|
edition = "oss",
|
||||||
|
trigger = trigger,
|
||||||
|
services = integration_test_services(edition = "oss"),
|
||||||
|
steps = [
|
||||||
|
download_grabpl_step(),
|
||||||
|
identify_runner_step(),
|
||||||
|
verify_gen_cue_step(),
|
||||||
|
verify_gen_jsonnet_step(),
|
||||||
|
wire_install_step(),
|
||||||
|
] +
|
||||||
|
oss_integration_test_steps,
|
||||||
|
environment = {"EDITION": "oss"},
|
||||||
|
volumes = volumes,
|
||||||
|
))
|
||||||
|
|
||||||
|
pipelines.append(pipeline(
|
||||||
|
name = "integration-tests-enterprise",
|
||||||
|
edition = "enterprise",
|
||||||
|
trigger = trigger,
|
||||||
|
services = integration_test_services(edition = "enterprise"),
|
||||||
|
steps = [
|
||||||
|
download_grabpl_step(),
|
||||||
|
identify_runner_step(),
|
||||||
|
clone_enterprise_step(source = source),
|
||||||
|
init_enterprise_step(ver_mode),
|
||||||
|
] +
|
||||||
|
with_deps(
|
||||||
|
[
|
||||||
|
verify_gen_cue_step(),
|
||||||
|
verify_gen_jsonnet_step(),
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"init-enterprise",
|
||||||
|
],
|
||||||
|
) +
|
||||||
|
[
|
||||||
|
wire_install_step(),
|
||||||
|
] +
|
||||||
|
enterprise_integration_test_steps,
|
||||||
|
environment = {"EDITION": "enterprise"},
|
||||||
|
volumes = volumes,
|
||||||
|
))
|
||||||
|
|
||||||
|
return pipelines
|
||||||
|
Loading…
Reference in New Issue
Block a user