diff --git a/.drone.yml b/.drone.yml index d16eef1fe27..d49a8ea5e9a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -17,7 +17,7 @@ steps: image: grafana/build-container:1.4.1 commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/grabpl - chmod +x bin/grabpl - ./bin/grabpl verify-drone - curl -fLO https://github.com/jwilder/dockerize/releases/download/v$${DOCKERIZE_VERSION}/dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz @@ -259,7 +259,7 @@ steps: image: grafana/build-container:1.4.1 commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/grabpl - chmod +x bin/grabpl - ./bin/grabpl verify-drone - curl -fLO https://github.com/jwilder/dockerize/releases/download/v$${DOCKERIZE_VERSION}/dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz @@ -591,7 +591,7 @@ steps: image: grafana/ci-wix:0.1.1 commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/windows/grabpl.exe -OutFile grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/windows/grabpl.exe -OutFile grabpl.exe - .\grabpl.exe verify-drone - name: build-windows-installer @@ -641,7 +641,7 @@ steps: image: grafana/build-container:1.4.1 commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/grabpl - chmod +x bin/grabpl - ./bin/grabpl verify-drone environment: @@ -726,7 +726,7 @@ steps: image: grafana/build-container:1.4.1 commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/grabpl - chmod +x bin/grabpl - ./bin/grabpl verify-drone - ./bin/grabpl verify-version ${DRONE_TAG} @@ -1033,7 +1033,7 @@ steps: image: grafana/ci-wix:0.1.1 commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/windows/grabpl.exe -OutFile grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/windows/grabpl.exe -OutFile grabpl.exe - .\grabpl.exe verify-drone - name: build-windows-installer @@ -1084,7 +1084,7 @@ steps: image: grafana/build-container:1.4.1 commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/grabpl - chmod +x bin/grabpl - git clone "https://$${GITHUB_TOKEN}@github.com/grafana/grafana-enterprise.git" - cd grafana-enterprise @@ -1345,6 +1345,17 @@ steps: - test-backend - test-frontend +- name: redis-integration-tests + image: grafana/build-container:1.4.1 + commands: + - ./bin/dockerize -wait tcp://redis:6379/0 -timeout 120s + - ./bin/grabpl integration-tests + environment: + REDIS_URL: redis://redis:6379/0 + depends_on: + - test-backend + - test-frontend + - name: upload-cdn-assets image: grafana/grafana-ci-deploy:1.3.1 commands: @@ -1367,6 +1378,7 @@ steps: - end-to-end-tests - mysql-integration-tests - postgres-integration-tests + - redis-integration-tests - name: package-enterprise2 image: grafana/build-container:1.4.1 @@ -1430,6 +1442,7 @@ steps: - end-to-end-tests-enterprise2 - mysql-integration-tests - postgres-integration-tests + - redis-integration-tests services: - name: postgres @@ -1447,6 +1460,9 @@ services: MYSQL_ROOT_PASSWORD: rootpass MYSQL_USER: grafana +- name: redis + image: redis:6.2.1-alpine + trigger: ref: - refs/tags/v* @@ -1474,7 +1490,7 @@ steps: image: grafana/ci-wix:0.1.1 commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/windows/grabpl.exe -OutFile grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/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} @@ -1540,7 +1556,7 @@ steps: image: grafana/build-container:1.4.1 commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/grabpl - chmod +x bin/grabpl - ./bin/grabpl verify-drone - ./bin/grabpl verify-version ${DRONE_TAG} @@ -1645,7 +1661,7 @@ steps: image: grafana/build-container:1.4.1 commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/grabpl - chmod +x bin/grabpl - ./bin/grabpl verify-drone - ./bin/grabpl verify-version v7.3.0-test @@ -1941,7 +1957,7 @@ steps: image: grafana/ci-wix:0.1.1 commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/windows/grabpl.exe -OutFile grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/windows/grabpl.exe -OutFile grabpl.exe - .\grabpl.exe verify-drone - name: build-windows-installer @@ -1992,7 +2008,7 @@ steps: image: grafana/build-container:1.4.1 commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/grabpl - chmod +x bin/grabpl - git clone "https://$${GITHUB_TOKEN}@github.com/grafana/grafana-enterprise.git" - cd grafana-enterprise @@ -2247,6 +2263,17 @@ steps: - test-backend - test-frontend +- name: redis-integration-tests + image: grafana/build-container:1.4.1 + commands: + - ./bin/dockerize -wait tcp://redis:6379/0 -timeout 120s + - ./bin/grabpl integration-tests + environment: + REDIS_URL: redis://redis:6379/0 + depends_on: + - test-backend + - test-frontend + - name: upload-cdn-assets image: grafana/grafana-ci-deploy:1.3.1 commands: @@ -2269,6 +2296,7 @@ steps: - end-to-end-tests - mysql-integration-tests - postgres-integration-tests + - redis-integration-tests - name: package-enterprise2 image: grafana/build-container:1.4.1 @@ -2332,6 +2360,7 @@ steps: - end-to-end-tests-enterprise2 - mysql-integration-tests - postgres-integration-tests + - redis-integration-tests services: - name: postgres @@ -2349,6 +2378,9 @@ services: MYSQL_ROOT_PASSWORD: rootpass MYSQL_USER: grafana +- name: redis + image: redis:6.2.1-alpine + trigger: event: - custom @@ -2376,7 +2408,7 @@ steps: image: grafana/ci-wix:0.1.1 commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/windows/grabpl.exe -OutFile grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/windows/grabpl.exe -OutFile grabpl.exe - git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git" - cd grafana-enterprise - git checkout master @@ -2442,7 +2474,7 @@ steps: image: grafana/build-container:1.4.1 commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/grabpl - chmod +x bin/grabpl - ./bin/grabpl verify-drone - ./bin/grabpl verify-version v7.3.0-test @@ -2547,7 +2579,7 @@ steps: image: grafana/build-container:1.4.1 commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/grabpl - chmod +x bin/grabpl - ./bin/grabpl verify-drone - curl -fLO https://github.com/jwilder/dockerize/releases/download/v$${DOCKERIZE_VERSION}/dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz @@ -2818,7 +2850,7 @@ steps: image: grafana/ci-wix:0.1.1 commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/windows/grabpl.exe -OutFile grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/windows/grabpl.exe -OutFile grabpl.exe - .\grabpl.exe verify-drone - name: build-windows-installer @@ -2865,7 +2897,7 @@ steps: image: grafana/build-container:1.4.1 commands: - mkdir -p bin - - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/grabpl + - curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/grabpl - chmod +x bin/grabpl - git clone "https://$${GITHUB_TOKEN}@github.com/grafana/grafana-enterprise.git" - cd grafana-enterprise @@ -3123,6 +3155,17 @@ steps: - test-backend - test-frontend +- name: redis-integration-tests + image: grafana/build-container:1.4.1 + commands: + - ./bin/dockerize -wait tcp://redis:6379/0 -timeout 120s + - ./bin/grabpl integration-tests + environment: + REDIS_URL: redis://redis:6379/0 + depends_on: + - test-backend + - test-frontend + - name: upload-cdn-assets image: grafana/grafana-ci-deploy:1.3.1 commands: @@ -3145,6 +3188,7 @@ steps: - end-to-end-tests - mysql-integration-tests - postgres-integration-tests + - redis-integration-tests - name: package-enterprise2 image: grafana/build-container:1.4.1 @@ -3208,6 +3252,7 @@ steps: - end-to-end-tests-enterprise2 - mysql-integration-tests - postgres-integration-tests + - redis-integration-tests services: - name: postgres @@ -3225,6 +3270,9 @@ services: MYSQL_ROOT_PASSWORD: rootpass MYSQL_USER: grafana +- name: redis + image: redis:6.2.1-alpine + trigger: ref: - refs/heads/v* @@ -3252,7 +3300,7 @@ steps: image: grafana/ci-wix:0.1.1 commands: - $$ProgressPreference = "SilentlyContinue" - - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.43/windows/grabpl.exe -OutFile grabpl.exe + - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.48/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 diff --git a/scripts/lib.star b/scripts/lib.star index 7bbc1ad22b1..5e91924a60c 100644 --- a/scripts/lib.star +++ b/scripts/lib.star @@ -1,4 +1,4 @@ -grabpl_version = '0.5.43' +grabpl_version = '0.5.48' build_image = 'grafana/build-container:1.4.1' publish_image = 'grafana/grafana-ci-deploy:1.3.1' grafana_docker_image = 'grafana/drone-grafana-docker:0.3.2' @@ -799,6 +799,23 @@ def mysql_integration_tests_step(): ], } +def redis_integration_tests_step(): + return { + 'name': 'redis-integration-tests', + 'image': build_image, + 'depends_on': [ + 'test-backend', + 'test-frontend', + ], + 'environment': { + 'REDIS_URL': 'redis://redis:6379/0', + }, + 'commands': [ + './bin/dockerize -wait tcp://redis:6379/0 -timeout 120s', + './bin/grabpl integration-tests', + ], + } + def release_canary_npm_packages_step(edition): if edition in ('enterprise', 'enterprise2'): return None @@ -856,15 +873,20 @@ def upload_packages_step(edition, ver_mode, is_downstream=False): else: cmd = './bin/grabpl upload-packages --edition {}{}'.format(edition, packages_bucket) + dependencies = [ + 'package' + enterprise2_sfx(edition), + 'end-to-end-tests' + enterprise2_sfx(edition), + 'mysql-integration-tests', + 'postgres-integration-tests', + ] + + if edition in ('enterprise', 'enterprise2'): + dependencies.append('redis-integration-tests') + return { 'name': 'upload-packages' + enterprise2_sfx(edition), 'image': publish_image, - 'depends_on': [ - 'package' + enterprise2_sfx(edition), - 'end-to-end-tests' + enterprise2_sfx(edition), - 'mysql-integration-tests', - 'postgres-integration-tests', - ], + 'depends_on': dependencies, 'environment': { 'GCP_GRAFANA_UPLOAD_KEY': { 'from_secret': 'gcp_key', @@ -1047,8 +1069,8 @@ def get_windows_steps(edition, ver_mode, is_downstream=False): return steps -def integration_test_services(): - return [ +def integration_test_services(edition): + services = [ { 'name': 'postgres', 'image': 'postgres:12.3-alpine', @@ -1069,3 +1091,12 @@ def integration_test_services(): }, }, ] + + if edition in ('enterprise', 'enterprise2'): + services.append({ + 'name': 'redis', + 'image': 'redis:6.2.1-alpine', + 'environment': {}, + }) + + return services diff --git a/scripts/master.star b/scripts/master.star index f01a8dad31e..c036e318ff3 100644 --- a/scripts/master.star +++ b/scripts/master.star @@ -20,6 +20,7 @@ load( 'build_docker_images_step', 'postgres_integration_tests_step', 'mysql_integration_tests_step', + 'redis_integration_tests_step', 'get_windows_steps', 'benchmark_ldap_step', 'ldap_service', @@ -77,6 +78,12 @@ def get_steps(edition, is_downstream=False): build_docker_images_step(edition=edition, ver_mode=ver_mode, ubuntu=True, publish=publish), postgres_integration_tests_step(), mysql_integration_tests_step(), + ]) + + if include_enterprise2: + steps.append(redis_integration_tests_step()) + + steps.extend([ release_canary_npm_packages_step(edition), upload_packages_step(edition=edition, ver_mode=ver_mode, is_downstream=is_downstream), deploy_to_kubernetes_step(edition=edition, is_downstream=is_downstream), @@ -104,7 +111,7 @@ def get_steps(edition, is_downstream=False): return steps, windows_steps, publish_steps def master_pipelines(edition): - services = integration_test_services() + services = integration_test_services(edition) trigger = { 'event': ['push',], 'branch': 'master', diff --git a/scripts/pr.star b/scripts/pr.star index b33685f0118..279e772807f 100644 --- a/scripts/pr.star +++ b/scripts/pr.star @@ -21,6 +21,7 @@ load( 'build_docker_images_step', 'postgres_integration_tests_step', 'mysql_integration_tests_step', + 'redis_integration_tests_step', 'benchmark_ldap_step', 'ldap_service', 'integration_test_services', @@ -29,7 +30,7 @@ load( ver_mode = 'pr' def pr_pipelines(edition): - services = integration_test_services() + services = integration_test_services(edition) variants = ['linux-x64', 'linux-x64-musl', 'osx64', 'win64',] include_enterprise2 = edition == 'enterprise' steps = [ @@ -72,6 +73,7 @@ def pr_pipelines(edition): if include_enterprise2: steps.extend([ + redis_integration_tests_step(), package_step(edition=edition2, ver_mode=ver_mode, variants=['linux-x64']), e2e_tests_server_step(edition=edition2, port=3002), e2e_tests_step(edition=edition2, port=3002), diff --git a/scripts/release.star b/scripts/release.star index c72d5102c01..4f6ad65f122 100644 --- a/scripts/release.star +++ b/scripts/release.star @@ -22,6 +22,7 @@ load( 'build_docker_images_step', 'postgres_integration_tests_step', 'mysql_integration_tests_step', + 'redis_integration_tests_step', 'get_windows_steps', 'benchmark_ldap_step', 'ldap_service', @@ -101,6 +102,9 @@ def get_steps(edition, ver_mode): mysql_integration_tests_step(), ]) + if include_enterprise2: + steps.append(redis_integration_tests_step()) + if should_upload: steps.append(upload_cdn(edition=edition)) steps.append(upload_packages_step(edition=edition, ver_mode=ver_mode)) @@ -125,7 +129,7 @@ def get_steps(edition, ver_mode): return steps, windows_steps def get_oss_pipelines(trigger, ver_mode): - services = integration_test_services() + services = integration_test_services(edition='oss') steps, windows_steps = get_steps(edition='oss', ver_mode=ver_mode) return [ pipeline( @@ -139,7 +143,7 @@ def get_oss_pipelines(trigger, ver_mode): ] def get_enterprise_pipelines(trigger, ver_mode): - services = integration_test_services() + services = integration_test_services(edition='enterprise') steps, windows_steps = get_steps(edition='enterprise', ver_mode=ver_mode) return [ pipeline( @@ -153,7 +157,8 @@ def get_enterprise_pipelines(trigger, ver_mode): ] def release_pipelines(ver_mode='release', trigger=None): - services = integration_test_services() + # 'enterprise' edition services contain both OSS and enterprise services + services = integration_test_services(edition='enterprise') if not trigger: trigger = { 'ref': ['refs/tags/v*',], @@ -188,7 +193,7 @@ def release_pipelines(ver_mode='release', trigger=None): def test_release_pipelines(): ver_mode = 'test-release' - services = integration_test_services() + services = integration_test_services(edition='enterprise') trigger = { 'event': ['custom',], }