diff --git a/.drone.star b/.drone.star index a90a3027b23..f025f8df415 100644 --- a/.drone.star +++ b/.drone.star @@ -6,7 +6,7 @@ load('scripts/drone/pipelines/pr.star', 'pr_pipelines') load('scripts/drone/pipelines/main.star', 'main_pipelines') -load('scripts/drone/pipelines/release.star', 'release_pipelines', 'test_release_pipelines', 'publish_image_pipelines', 'publish_artifacts_pipelines', 'publish_npm_pipelines', 'publish_packages_pipeline') +load('scripts/drone/pipelines/release.star', 'release_pipelines', 'publish_image_pipelines', 'publish_artifacts_pipelines', 'publish_npm_pipelines', 'publish_packages_pipeline') load('scripts/drone/version.star', 'version_branch_pipelines') load('scripts/drone/pipelines/cron.star', 'cronjobs') load('scripts/drone/vault.star', 'secrets') @@ -17,4 +17,4 @@ def main(ctx): publish_image_pipelines('public') + publish_image_pipelines('security') + \ publish_artifacts_pipelines('security') + publish_artifacts_pipelines('public') + \ publish_npm_pipelines('public') + publish_packages_pipeline() + \ - test_release_pipelines() + version_branch_pipelines() + cronjobs(edition=edition) + secrets() + version_branch_pipelines() + cronjobs(edition=edition) + secrets() diff --git a/.drone.yml b/.drone.yml index f03a61a47f7..d2ead8acdcf 100644 --- a/.drone.yml +++ b/.drone.yml @@ -186,21 +186,21 @@ steps: image: grafana/build-container:1.4.9 name: package - commands: - - ./e2e/start-server + - ./scripts/grafana-server/start-server depends_on: - package detach: true environment: PORT: 3001 image: grafana/build-container:1.4.9 - name: end-to-end-tests-server + name: grafana-server - commands: - apt-get install -y netcat - ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-dashboards-suite - commands: @@ -209,7 +209,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-smoke-tests-suite - commands: @@ -218,7 +218,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-panels-suite - commands: @@ -227,7 +227,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-various-suite - commands: @@ -243,11 +243,11 @@ steps: - yarn wait-on http://$HOST:$PORT - pa11y-ci --config .pa11yci-pr.conf.js depends_on: - - end-to-end-tests-server + - grafana-server environment: GRAFANA_MISC_STATS_API_KEY: from_secret: grafana_misc_stats_api_key - HOST: end-to-end-tests-server + HOST: grafana-server PORT: 3001 failure: always image: hugohaggmark/docker-puppeteer @@ -593,21 +593,21 @@ steps: image: grafana/build-container:1.4.9 name: package - commands: - - ./e2e/start-server + - ./scripts/grafana-server/start-server depends_on: - package detach: true environment: PORT: 3001 image: grafana/build-container:1.4.9 - name: end-to-end-tests-server + name: grafana-server - commands: - apt-get install -y netcat - ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-dashboards-suite - commands: @@ -616,7 +616,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-smoke-tests-suite - commands: @@ -625,7 +625,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-panels-suite - commands: @@ -634,7 +634,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-various-suite - commands: @@ -667,11 +667,11 @@ steps: - yarn wait-on http://$HOST:$PORT - pa11y-ci --config .pa11yci.conf.js --json > pa11y-ci-results.json depends_on: - - end-to-end-tests-server + - grafana-server environment: GRAFANA_MISC_STATS_API_KEY: from_secret: grafana_misc_stats_api_key - HOST: end-to-end-tests-server + HOST: grafana-server PORT: 3001 failure: ignore image: hugohaggmark/docker-puppeteer @@ -752,7 +752,7 @@ steps: - commands: - ./bin/grabpl upload-cdn --edition oss --bucket "grafana-static-assets" depends_on: - - end-to-end-tests-server + - grafana-server environment: GCP_GRAFANA_UPLOAD_KEY: from_secret: gcp_key @@ -1149,21 +1149,21 @@ steps: - name: docker path: /var/run/docker.sock - commands: - - ./e2e/start-server + - ./scripts/grafana-server/start-server depends_on: - package detach: true environment: PORT: 3001 image: grafana/build-container:1.4.9 - name: end-to-end-tests-server + name: grafana-server - commands: - apt-get install -y netcat - ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3 depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-dashboards-suite - commands: @@ -1172,7 +1172,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-smoke-tests-suite - commands: @@ -1181,7 +1181,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-panels-suite - commands: @@ -1190,7 +1190,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-various-suite - commands: @@ -1205,7 +1205,7 @@ steps: - commands: - ./bin/grabpl upload-cdn --edition oss --bucket "$${PRERELEASE_BUCKET}/artifacts/static-assets" depends_on: - - end-to-end-tests-server + - grafana-server environment: GCP_GRAFANA_UPLOAD_KEY: from_secret: gcp_key @@ -1514,8 +1514,8 @@ steps: - .\grabpl.exe gen-version ${DRONE_TAG} - .\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/ + - gsutil cp $$fname gs://%PRERELEASE_BUCKET%/artifacts/downloads/${DRONE_TAG}/oss/release/ + - gsutil cp "$$fname.sha256" gs://%PRERELEASE_BUCKET%/artifacts/downloads/${DRONE_TAG}/oss/release/ depends_on: - initialize environment: @@ -1718,23 +1718,23 @@ steps: - name: docker path: /var/run/docker.sock - commands: - - ./e2e/start-server + - ./scripts/grafana-server/start-server depends_on: - package detach: true environment: PACKAGE_FILE: dist/grafana-enterprise-*linux-amd64.tar.gz PORT: 3001 - RUNDIR: e2e/tmp-grafana-enterprise + RUNDIR: scripts/grafana-server/tmp-grafana-enterprise image: grafana/build-container:1.4.9 - name: end-to-end-tests-server + name: grafana-server - commands: - apt-get install -y netcat - ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3 depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-dashboards-suite - commands: @@ -1743,7 +1743,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-smoke-tests-suite - commands: @@ -1752,7 +1752,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-panels-suite - commands: @@ -1761,7 +1761,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-various-suite - commands: @@ -2201,8 +2201,8 @@ steps: - .\grabpl.exe gen-version ${DRONE_TAG} - .\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/ + - gsutil cp $$fname gs://%PRERELEASE_BUCKET%/artifacts/downloads/${DRONE_TAG}/enterprise/release/ + - gsutil cp "$$fname.sha256" gs://%PRERELEASE_BUCKET%/artifacts/downloads/${DRONE_TAG}/enterprise/release/ depends_on: - initialize environment: @@ -2656,7 +2656,8 @@ steps: name: grabpl - commands: - printenv GCP_KEY | base64 -d > /tmp/gcpkey.json - - ./bin/grabpl store-packages --edition oss --gcp-key /tmp/gcpkey.json ${DRONE_TAG} + - ./bin/grabpl store-packages --edition oss --packages-bucket grafana-downloads + --gcp-key /tmp/gcpkey.json ${DRONE_TAG} depends_on: - grabpl environment: @@ -2674,7 +2675,8 @@ steps: name: store-packages-oss - commands: - printenv GCP_KEY | base64 -d > /tmp/gcpkey.json - - ./bin/grabpl store-packages --edition enterprise --gcp-key /tmp/gcpkey.json ${DRONE_TAG} + - ./bin/grabpl store-packages --edition enterprise --packages-bucket grafana-downloads + --gcp-key /tmp/gcpkey.json ${DRONE_TAG} depends_on: - grabpl environment: @@ -2703,1272 +2705,6 @@ volumes: --- depends_on: [] kind: pipeline -name: oss-build-publish-e2e-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.8.7/grabpl - - chmod +x bin/grabpl - image: byrnedo/alpine-curl:0.1.8 - name: grabpl -- commands: - - echo $DRONE_RUNNER_NAME - image: alpine:3.15 - 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.9 - name: initialize -- 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.9 - 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.9 - 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.9 - name: build-plugins -- commands: - - ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root . - depends_on: - - build-backend - image: grafana/build-container:1.4.9 - 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.9 - 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.9 - name: package -- commands: - - ls dist/*.tar.gz* - - cp dist/*.tar.gz* packaging/docker/ - depends_on: - - package - image: grafana/build-container:1.4.9 - 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: - - ./e2e/start-server - depends_on: - - package - detach: true - environment: - PORT: 3001 - image: grafana/build-container:1.4.9 - name: end-to-end-tests-server -- commands: - - apt-get install -y netcat - - ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3 - depends_on: - - package - environment: - HOST: end-to-end-tests-server - image: cypress/included:8.4.1 - name: end-to-end-tests-dashboards-suite -- commands: - - apt-get install -y netcat - - ./bin/grabpl e2e-tests --port 3001 --suite smoke-tests-suite --tries 3 - depends_on: - - package - environment: - HOST: end-to-end-tests-server - image: cypress/included:8.4.1 - name: end-to-end-tests-smoke-tests-suite -- commands: - - apt-get install -y netcat - - ./bin/grabpl e2e-tests --port 3001 --suite panels-suite --tries 3 - depends_on: - - package - environment: - HOST: end-to-end-tests-server - image: cypress/included:8.4.1 - name: end-to-end-tests-panels-suite -- commands: - - apt-get install -y netcat - - ./bin/grabpl e2e-tests --port 3001 --suite various-suite --tries 3 - depends_on: - - package - environment: - HOST: end-to-end-tests-server - image: cypress/included:8.4.1 - name: end-to-end-tests-various-suite -- 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.9 - 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: -- host: - path: /var/run/docker.sock - name: docker -- name: postgres - temp: - medium: memory -- name: mysql - temp: - medium: memory ---- -depends_on: [] -kind: pipeline -name: oss-test-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.8.7/grabpl - - chmod +x bin/grabpl - image: byrnedo/alpine-curl:0.1.8 - name: grabpl -- commands: - - echo $DRONE_RUNNER_NAME - image: alpine:3.15 - 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.9 - 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.9 - name: codespell -- commands: - - ./bin/grabpl shellcheck - depends_on: - - initialize - image: grafana/build-container:1.4.9 - name: shellcheck -- commands: - - ./bin/grabpl lint-backend --edition oss - depends_on: - - initialize - environment: - CGO_ENABLED: "1" - image: grafana/build-container:1.4.9 - name: lint-backend -- commands: - - yarn run prettier:check - - yarn run lint - - yarn run typecheck - depends_on: - - initialize - environment: - TEST_MAX_WORKERS: 50% - image: grafana/build-container:1.4.9 - name: lint-frontend -- commands: - - ./bin/grabpl test-backend --edition oss - depends_on: - - initialize - image: grafana/build-container:1.4.9 - name: test-backend -- commands: - - ./bin/grabpl integration-tests --edition oss - depends_on: - - initialize - image: grafana/build-container:1.4.9 - name: test-backend-integration -- commands: - - yarn run ci:test-frontend - depends_on: - - initialize - environment: - TEST_MAX_WORKERS: 50% - image: grafana/build-container:1.4.9 - name: test-frontend -trigger: - event: - - custom -type: docker -volumes: -- host: - path: /var/run/docker.sock - name: docker ---- -depends_on: [] -kind: pipeline -name: oss-integration-tests-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.8.7/grabpl - - chmod +x bin/grabpl - image: byrnedo/alpine-curl:0.1.8 - name: grabpl -- commands: - - echo $DRONE_RUNNER_NAME - image: alpine:3.15 - 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.9 - 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.9 - 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.9 - name: mysql-integration-tests -trigger: - event: - - custom -type: docker -volumes: -- host: - path: /var/run/docker.sock - name: docker -- name: postgres - temp: - medium: memory -- name: mysql - temp: - medium: memory ---- -depends_on: -- oss-build-publish-e2e-test-release -- oss-test-test-release -- oss-integration-tests-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.8.7/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 gen-version v7.3.0-test - - .\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: -- host: - path: /var/run/docker.sock - name: docker ---- -clone: - disable: true -depends_on: [] -image_pull_secrets: -- dockerconfigjson -kind: pipeline -name: enterprise-build-e2e-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.8.7/grabpl - - chmod +x bin/grabpl - image: byrnedo/alpine-curl:0.1.8 - name: grabpl -- commands: - - echo $DRONE_RUNNER_NAME - image: alpine:3.15 - 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.9 - 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.9 - name: initialize -- 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.9 - 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.9 - 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.9 - name: build-plugins -- commands: - - ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root . - depends_on: - - build-backend - image: grafana/build-container:1.4.9 - 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.9 - name: ensure-cuetsified -- 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.9 - 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 - 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.9 - name: package -- commands: - - ls dist/*.tar.gz* - - cp dist/*.tar.gz* packaging/docker/ - depends_on: - - package - image: grafana/build-container:1.4.9 - 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: - - ./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.9 - name: end-to-end-tests-server -- commands: - - apt-get install -y netcat - - ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3 - depends_on: - - package - environment: - HOST: end-to-end-tests-server - image: cypress/included:8.4.1 - name: end-to-end-tests-dashboards-suite -- commands: - - apt-get install -y netcat - - ./bin/grabpl e2e-tests --port 3001 --suite smoke-tests-suite --tries 3 - depends_on: - - package - environment: - HOST: end-to-end-tests-server - image: cypress/included:8.4.1 - name: end-to-end-tests-smoke-tests-suite -- commands: - - apt-get install -y netcat - - ./bin/grabpl e2e-tests --port 3001 --suite panels-suite --tries 3 - depends_on: - - package - environment: - HOST: end-to-end-tests-server - image: cypress/included:8.4.1 - name: end-to-end-tests-panels-suite -- commands: - - apt-get install -y netcat - - ./bin/grabpl e2e-tests --port 3001 --suite various-suite --tries 3 - depends_on: - - package - environment: - HOST: end-to-end-tests-server - image: cypress/included:8.4.1 - name: end-to-end-tests-various-suite -- 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 - 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 - 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.9 - 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 - 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: -- host: - path: /var/run/docker.sock - name: docker -- name: postgres - temp: - medium: memory -- name: mysql - temp: - medium: memory ---- -clone: - disable: true -depends_on: [] -image_pull_secrets: -- dockerconfigjson -kind: pipeline -name: enterprise-test-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.8.7/grabpl - - chmod +x bin/grabpl - image: byrnedo/alpine-curl:0.1.8 - name: grabpl -- commands: - - echo $DRONE_RUNNER_NAME - image: alpine:3.15 - 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.9 - 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.9 - 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.9 - name: codespell -- commands: - - ./bin/grabpl shellcheck - depends_on: - - initialize - image: grafana/build-container:1.4.9 - name: shellcheck -- commands: - - ./bin/grabpl lint-backend --edition enterprise - depends_on: - - initialize - environment: - CGO_ENABLED: "1" - image: grafana/build-container:1.4.9 - name: lint-backend -- commands: - - yarn run prettier:check - - yarn run lint - - yarn run typecheck - depends_on: - - initialize - environment: - TEST_MAX_WORKERS: 50% - image: grafana/build-container:1.4.9 - name: lint-frontend -- commands: - - ./bin/grabpl test-backend --edition enterprise - depends_on: - - initialize - image: grafana/build-container:1.4.9 - name: test-backend -- commands: - - ./bin/grabpl integration-tests --edition enterprise - depends_on: - - initialize - image: grafana/build-container:1.4.9 - name: test-backend-integration -- commands: - - yarn run ci:test-frontend - depends_on: - - initialize - environment: - TEST_MAX_WORKERS: 50% - image: grafana/build-container:1.4.9 - name: test-frontend -- commands: - - ./bin/grabpl lint-backend --edition enterprise2 - depends_on: - - initialize - environment: - CGO_ENABLED: "1" - image: grafana/build-container:1.4.9 - name: lint-backend-enterprise2 -- commands: - - ./bin/grabpl test-backend --edition enterprise2 - depends_on: - - initialize - image: grafana/build-container:1.4.9 - name: test-backend-enterprise2 -- commands: - - ./bin/grabpl integration-tests --edition enterprise2 - depends_on: - - initialize - image: grafana/build-container:1.4.9 - name: test-backend-integration-enterprise2 -trigger: - event: - - custom -type: docker -volumes: -- host: - path: /var/run/docker.sock - name: docker ---- -clone: - disable: true -depends_on: [] -image_pull_secrets: -- dockerconfigjson -kind: pipeline -name: enterprise-integration-tests-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.8.7/grabpl - - chmod +x bin/grabpl - image: byrnedo/alpine-curl:0.1.8 - name: grabpl -- commands: - - echo $DRONE_RUNNER_NAME - image: alpine:3.15 - 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.9 - 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.9 - 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.9 - 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.9 - name: mysql-integration-tests -- 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.9 - 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.9 - name: memcached-integration-tests -trigger: - event: - - custom -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: -- enterprise-build-e2e-publish-test-release -- enterprise-test-test-release -- enterprise-integration-tests-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.8.7/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 gen-version v7.3.0-test - - .\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: -- host: - path: /var/run/docker.sock - name: docker ---- -depends_on: -- oss-build-publish-e2e-test-release -- oss-test-test-release -- oss-integration-tests-test-release -- oss-windows-test-release -- enterprise-build-e2e-publish-test-release -- enterprise-test-test-release -- enterprise-integration-tests-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.8.7/grabpl - - chmod +x bin/grabpl - image: byrnedo/alpine-curl:0.1.8 - name: grabpl -- commands: - - echo $DRONE_RUNNER_NAME - image: alpine:3.15 - name: identify-runner -- commands: - - make gen-go - - ./bin/grabpl verify-version v7.3.0-test - image: grafana/build-container:1.4.9 - 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: - - grabpl - 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: - - grabpl - 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: -- host: - path: /var/run/docker.sock - name: docker ---- -depends_on: -- oss-build-publish-e2e-test-release -- oss-test-test-release -- oss-integration-tests-test-release -- oss-windows-test-release -- enterprise-build-e2e-publish-test-release -- enterprise-test-test-release -- enterprise-integration-tests-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: : {{build.link}} - Branch: - Author: {{build.author}} - webhook: - from_secret: slack_webhook -trigger: - event: - - custom - status: - - failure -type: docker ---- -depends_on: [] -kind: pipeline name: oss-build-publish-e2e-release-branch node: type: no-parallel @@ -4102,21 +2838,21 @@ steps: - name: docker path: /var/run/docker.sock - commands: - - ./e2e/start-server + - ./scripts/grafana-server/start-server depends_on: - package detach: true environment: PORT: 3001 image: grafana/build-container:1.4.9 - name: end-to-end-tests-server + name: grafana-server - commands: - apt-get install -y netcat - ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3 depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-dashboards-suite - commands: @@ -4125,7 +2861,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-smoke-tests-suite - commands: @@ -4134,7 +2870,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-panels-suite - commands: @@ -4143,7 +2879,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-various-suite - commands: @@ -4158,7 +2894,7 @@ steps: - commands: - ./bin/grabpl upload-cdn --edition oss --bucket "grafana-static-assets" depends_on: - - end-to-end-tests-server + - grafana-server environment: GCP_GRAFANA_UPLOAD_KEY: from_secret: gcp_key @@ -4599,23 +3335,23 @@ steps: - name: docker path: /var/run/docker.sock - commands: - - ./e2e/start-server + - ./scripts/grafana-server/start-server depends_on: - package detach: true environment: PACKAGE_FILE: dist/grafana-enterprise-*linux-amd64.tar.gz PORT: 3001 - RUNDIR: e2e/tmp-grafana-enterprise + RUNDIR: scripts/grafana-server/tmp-grafana-enterprise image: grafana/build-container:1.4.9 - name: end-to-end-tests-server + name: grafana-server - commands: - apt-get install -y netcat - ./bin/grabpl e2e-tests --port 3001 --suite dashboards-suite --tries 3 depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-dashboards-suite - commands: @@ -4624,7 +3360,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-smoke-tests-suite - commands: @@ -4633,7 +3369,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-panels-suite - commands: @@ -4642,7 +3378,7 @@ steps: depends_on: - package environment: - HOST: end-to-end-tests-server + HOST: grafana-server image: cypress/included:8.4.1 name: end-to-end-tests-various-suite - commands: @@ -5146,6 +3882,6 @@ kind: secret name: prerelease_bucket --- kind: signature -hmac: 79e1e55b0684ab2cd25e15fce6ad52f34cc4431c67f20e93291328040dcf1af8 +hmac: 3d01d79c40ca3e6ccd4a26f1d4f6cd26c22f758a7f6835689b86b4f51895d0ea ... diff --git a/.eslintignore b/.eslintignore index 7f3757c172b..69879bc52b9 100644 --- a/.eslintignore +++ b/.eslintignore @@ -6,5 +6,6 @@ devenv data dist e2e/tmp +scripts/grafana-server/tmp public/lib/monaco deployment_tools_config.json diff --git a/.gitignore b/.gitignore index 124db041693..e9078e91bdb 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ public/dist/tsconfig.tsbuildinfo /emails/dist /reports /e2e/tmp +/scripts/grafana-server/tmp vendor/ /docs/menu.yaml /requests @@ -137,6 +138,9 @@ compilation-stats.json !/e2e/**/screenshots/expected/* /e2e/**/videos/* +# grafana server +/scripts/grafana-server/server.log + # a11y tests /pa11y-ci-results.json /pa11y-ci-report diff --git a/.prettierignore b/.prettierignore index 9f8fae45f84..951a41382f5 100644 --- a/.prettierignore +++ b/.prettierignore @@ -7,6 +7,7 @@ public/vendor/ vendor/ /data/ e2e/tmp +scripts/grafana-server/tmp public/build/ public/sass/*.generated.scss devenv/ diff --git a/contribute/style-guides/e2e-core.md b/contribute/style-guides/e2e-core.md index 813ec9fe574..fb2c24e0bfc 100644 --- a/contribute/style-guides/e2e-core.md +++ b/contribute/style-guides/e2e-core.md @@ -16,8 +16,8 @@ BASE_URL=http://172.0.10.2:3333 yarn e2e The above commands use some utils scripts under [_\/e2e_](../../e2e) that can also be used for more control. -- `./e2e/start-server` This creates a fresh new grafana server working dir, setup's config and starts the server. It will also kill any previously started server that is still running using pid file at _\/e2e/tmp/pid_. -- `./e2e/wait-for-grafana` waits for `$HOST` and `$PORT` to be available. Per default localhost and 3001. +- `./scripts/grafana-server/start-server` This creates a fresh new grafana server working dir, setup's config and starts the server. It will also kill any previously started server that is still running using pid file at _\/scripts/grafana-server/tmp/pid_. +- `./scripts/grafana-server/wait-for-grafana` waits for `$HOST` and `$PORT` to be available. Per default localhost and 3001. - `./e2e/run-suite ` Starts cypress in different modes. ## Test suites diff --git a/e2e/run-suite b/e2e/run-suite index a03e5f86144..dad79eb257b 100755 --- a/e2e/run-suite +++ b/e2e/run-suite @@ -1,7 +1,7 @@ #!/bin/bash set -xeo pipefail -. e2e/variables +. scripts/grafana-server/variables HOST=${HOST:-$DEFAULT_HOST} PORT=${PORT:-$DEFAULT_PORT} diff --git a/e2e/start-and-run-suite b/e2e/start-and-run-suite index 9aac995b61f..2c5c7d1d996 100755 --- a/e2e/start-and-run-suite +++ b/e2e/start-and-run-suite @@ -1,13 +1,13 @@ #!/bin/bash -. e2e/variables +. scripts/grafana-server/variables if [ "$BASE_URL" != "" ]; then echo -e "BASE_URL set, skipping starting server" else # Start it in the background - ./e2e/start-server 2>&1 > e2e/server.log & - ./e2e/wait-for-grafana + ./scripts/grafana-server/start-server 2>&1 > scripts/grafana-server/server.log & + ./scripts/grafana-server/wait-for-grafana fi ./e2e/run-suite "$@" diff --git a/e2e/verify-release b/e2e/verify-release index 3e40a635741..2bb9df037fa 100755 --- a/e2e/verify-release +++ b/e2e/verify-release @@ -1,5 +1,5 @@ #!/bin/bash -. e2e/variables +. scripts/grafana-server/variables ./e2e/run-suite verify/specs diff --git a/scripts/drone/pipelines/release.star b/scripts/drone/pipelines/release.star index fd14ef7a60c..e09f1b4e59d 100644 --- a/scripts/drone/pipelines/release.star +++ b/scripts/drone/pipelines/release.star @@ -4,7 +4,6 @@ load( 'download_grabpl_step', 'initialize_step', 'lint_drone_step', - 'test_release_ver', 'build_image', 'publish_image', 'lint_backend_step', @@ -466,38 +465,6 @@ def release_pipelines(ver_mode='release', trigger=None, environment=None): return pipelines -def test_release_pipelines(): - ver_mode = 'test-release' - - services = integration_test_services(edition='enterprise') - trigger = { - 'event': ['custom',], - } - - oss_pipelines = get_oss_pipelines(ver_mode=ver_mode, trigger=trigger) - enterprise_pipelines = get_enterprise_pipelines(ver_mode=ver_mode, trigger=trigger) - - publish_cmd = './bin/grabpl store-packages --edition {{}} --dry-run {}'.format(test_release_ver) - - steps = [ - store_packages_step(edition='oss', ver_mode=ver_mode), - store_packages_step(edition='enterprise', ver_mode=ver_mode), - ] - - publish_pipeline = pipeline( - name='publish-{}'.format(ver_mode), trigger=trigger, edition='oss', - steps=[download_grabpl_step()] + initialize_step(edition='oss', platform='linux', ver_mode=ver_mode, install_deps=False) + steps, - depends_on=[p['name'] for p in oss_pipelines + enterprise_pipelines], - ) - - pipelines = oss_pipelines + enterprise_pipelines + [publish_pipeline,] - - pipelines.append(notify_pipeline( - name='notify-{}'.format(ver_mode), slack_channel='grafana-ci-notifications', trigger=trigger, - depends_on=[p['name'] for p in pipelines], - )) - - return pipelines def get_e2e_suffix(): if not disable_tests: diff --git a/scripts/drone/steps/lib.star b/scripts/drone/steps/lib.star index dc59d70064a..22f494b2976 100644 --- a/scripts/drone/steps/lib.star +++ b/scripts/drone/steps/lib.star @@ -9,7 +9,6 @@ alpine_image = 'alpine:3.15' curl_image = 'byrnedo/alpine-curl:0.1.8' windows_image = 'mcr.microsoft.com/windows:1809' wix_image = 'grafana/ci-wix:0.1.1' -test_release_ver = 'v7.3.0-test' disable_tests = False @@ -46,9 +45,6 @@ def initialize_step(edition, platform, ver_mode, is_downstream=False, install_de if ver_mode == 'release': args = '${DRONE_TAG}' common_cmds.append('./bin/grabpl verify-version ${DRONE_TAG}') - elif ver_mode == 'test-release': - args = test_release_ver - common_cmds.append('./bin/grabpl verify-version {}'.format(test_release_ver)) else: if not is_downstream: build_no = '${DRONE_BUILD_NUMBER}' @@ -68,8 +64,6 @@ def initialize_step(edition, platform, ver_mode, is_downstream=False, install_de if ver_mode == 'release': committish = '${DRONE_TAG}' source_commit = ' ${DRONE_TAG}' - elif ver_mode == 'test-release': - committish = 'main' elif ver_mode == 'release-branch': committish = '${DRONE_BRANCH}' else: @@ -232,7 +226,7 @@ def benchmark_ldap_step(): def build_storybook_step(edition, ver_mode): - if edition in ('enterprise', 'enterprise2') and ver_mode in ('release', 'test-release'): + if edition in ('enterprise', 'enterprise2') and ver_mode == 'release': return None return { @@ -256,24 +250,20 @@ def store_storybook_step(edition, ver_mode): if edition in ('enterprise', 'enterprise2'): return None - if ver_mode == 'test-release': - commands = [ - 'echo Testing release', - ] + + commands = [] + if ver_mode == 'release': + channels = ['latest', '${DRONE_TAG}', ] else: - commands = [] - if ver_mode == 'release': - channels = ['latest', '${DRONE_TAG}', ] - else: - channels = ['canary', ] - commands.extend([ - '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/{}'.format( - c) - for c in channels - ]) + channels = ['canary', ] + commands.extend([ + '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/{}'.format( + c) + for c in channels + ]) return { 'name': 'store-storybook', @@ -300,7 +290,7 @@ def upload_cdn_step(edition, ver_mode): ]) else: deps.extend([ - 'end-to-end-tests-server', + 'grafana-server', ]) return { @@ -331,15 +321,6 @@ def build_backend_step(edition, ver_mode, variants=None, is_downstream=False): edition, ), ] - elif ver_mode == 'test-release': - env = { - 'GITHUB_TOKEN': from_secret(github_token), - } - cmds = [ - './bin/grabpl build-backend --jobs 8 --edition {} --github-token $${{GITHUB_TOKEN}} --no-pull-enterprise {}'.format( - edition, test_release_ver, - ), - ] else: if not is_downstream: build_no = '${DRONE_BUILD_NUMBER}' @@ -375,11 +356,6 @@ def build_frontend_step(edition, ver_mode, is_downstream=False): './bin/grabpl build-frontend --jobs 8 --github-token $${GITHUB_TOKEN} --no-install-deps ' + \ '--edition {} --no-pull-enterprise ${{DRONE_TAG}}'.format(edition), ] - elif ver_mode == 'test-release': - cmds = [ - './bin/grabpl build-frontend --jobs 8 --github-token $${GITHUB_TOKEN} --no-install-deps ' + \ - '--edition {} --no-pull-enterprise {}'.format(edition, test_release_ver), - ] else: cmds = [ './bin/grabpl build-frontend --jobs 8 --no-install-deps --edition {} '.format(edition) + \ @@ -514,11 +490,11 @@ def test_a11y_frontend_step(ver_mode, edition, port=3001): 'name': 'test-a11y-frontend' + enterprise2_suffix(edition), 'image': 'hugohaggmark/docker-puppeteer', 'depends_on': [ - 'end-to-end-tests-server' + enterprise2_suffix(edition), + 'grafana-server' + enterprise2_suffix(edition), ], 'environment': { 'GRAFANA_MISC_STATS_API_KEY': from_secret('grafana_misc_stats_api_key'), - 'HOST': 'end-to-end-tests-server' + enterprise2_suffix(edition), + 'HOST': 'grafana-server' + enterprise2_suffix(edition), 'PORT': port, }, 'failure': failure, @@ -591,7 +567,7 @@ def package_step(edition, ver_mode, include_enterprise2=False, variants=None, is if variants: variants_str = ' --variants {}'.format(','.join(variants)) - if ver_mode in ('main', 'release', 'test-release', 'release-branch'): + if ver_mode in ('main', 'release', 'release-branch'): sign_args = ' --sign' env = { 'GRAFANA_API_KEY': from_secret('grafana_api_key'), @@ -614,13 +590,6 @@ def package_step(edition, ver_mode, include_enterprise2=False, variants=None, is sign_args ), ] - elif ver_mode == 'test-release': - cmds = [ - '{}./bin/grabpl package --jobs 8 --edition {} '.format(test_args, edition) + \ - '--github-token $${{GITHUB_TOKEN}} --no-pull-enterprise{} {}'.format( - sign_args, test_release_ver, - ), - ] else: if not is_downstream: build_no = '${DRONE_BUILD_NUMBER}' @@ -652,10 +621,10 @@ def e2e_tests_server_step(edition, port=3001): } if package_file_pfx: environment['PACKAGE_FILE'] = 'dist/{}-*linux-amd64.tar.gz'.format(package_file_pfx) - environment['RUNDIR'] = 'e2e/tmp-{}'.format(package_file_pfx) + environment['RUNDIR'] = 'scripts/grafana-server/tmp-{}'.format(package_file_pfx) return { - 'name': 'end-to-end-tests-server' + enterprise2_suffix(edition), + 'name': 'grafana-server' + enterprise2_suffix(edition), 'image': build_image, 'detach': True, 'depends_on': [ @@ -663,7 +632,7 @@ def e2e_tests_server_step(edition, port=3001): ], 'environment': environment, 'commands': [ - './e2e/start-server', + './scripts/grafana-server/start-server', ], } @@ -678,7 +647,7 @@ def e2e_tests_step(suite, edition, port=3001, tries=None): 'package', ], 'environment': { - 'HOST': 'end-to-end-tests-server' + enterprise2_suffix(edition), + 'HOST': 'grafana-server' + enterprise2_suffix(edition), }, 'commands': [ 'apt-get install -y netcat', @@ -718,9 +687,6 @@ def copy_packages_for_docker_step(): def package_docker_images_step(edition, ver_mode, archs=None, ubuntu=False, publish=False): - if ver_mode == 'test-release': - publish = False - cmd = './bin/grabpl build-docker --edition {} --shouldSave'.format(edition) ubuntu_sfx = '' if ubuntu: @@ -749,9 +715,6 @@ def package_docker_images_step(edition, ver_mode, archs=None, ubuntu=False, publ } def build_docker_images_step(edition, ver_mode, archs=None, ubuntu=False, publish=False): - if ver_mode == 'test-release': - publish = False - ubuntu_sfx = '' if ubuntu: ubuntu_sfx = '-ubuntu' @@ -898,10 +861,7 @@ def upload_packages_step(edition, ver_mode, is_downstream=False): packages_bucket = ' --packages-bucket $${PRERELEASE_BUCKET}/artifacts/downloads' + enterprise2_suffix(edition) - if ver_mode == 'test-release': - cmd = './bin/grabpl upload-packages --edition {} '.format(edition) + \ - '--packages-bucket grafana-downloads-test' - elif ver_mode == 'release': + if ver_mode == 'release': packages_bucket = '$${{PRERELEASE_BUCKET}}/artifacts/downloads{}'.format(enterprise2_suffix(edition)) cmd = './bin/grabpl upload-packages --edition {} --packages-bucket {}'.format(edition, packages_bucket) elif edition == 'enterprise2': @@ -930,14 +890,8 @@ def upload_packages_step(edition, ver_mode, is_downstream=False): def store_packages_step(edition, ver_mode, is_downstream=False): - if ver_mode == 'test-release': - cmd = './bin/grabpl store-packages --edition {} --gcp-key /tmp/gcpkey.json '.format(edition) + \ - '--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 {}'.format( - test_release_ver, - ) - elif ver_mode == 'release': - cmd = './bin/grabpl store-packages --edition {} --gcp-key /tmp/gcpkey.json ${{DRONE_TAG}}'.format( + if ver_mode == 'release': + cmd = './bin/grabpl store-packages --edition {} --packages-bucket grafana-downloads --gcp-key /tmp/gcpkey.json ${{DRONE_TAG}}'.format( edition, ) elif ver_mode == 'main': @@ -995,18 +949,13 @@ def get_windows_steps(edition, ver_mode, is_downstream=False): }, ] if (ver_mode == 'main' and (edition not in ('enterprise', 'enterprise2') or is_downstream)) or ver_mode in ( - 'release', 'test-release', 'release-branch', + 'release', 'release-branch', ): bucket_part = '' bucket = '%PRERELEASE_BUCKET%/artifacts/downloads' if ver_mode == 'release': ver_part = '${DRONE_TAG}' dir = 'release' - elif ver_mode == 'test-release': - ver_part = test_release_ver - dir = 'release' - bucket = 'grafana-downloads-test' - bucket_part = ' --packages-bucket {}'.format(bucket) else: dir = 'main' if not is_downstream: @@ -1024,15 +973,23 @@ def get_windows_steps(edition, ver_mode, is_downstream=False): 'cp C:\\App\\nssm-2.24.zip .', ] if (ver_mode == 'main' and (edition not in ('enterprise', 'enterprise2') or is_downstream)) or ver_mode in ( - 'release', 'test-release', + 'release', ): installer_commands.extend([ '.\\grabpl.exe gen-version {}'.format(ver_part), '.\\grabpl.exe windows-installer --edition {}{} {}'.format(edition, bucket_part, ver_part), '$$fname = ((Get-Childitem grafana*.msi -name) -split "`n")[0]', - 'gsutil cp $$fname gs://{}/{}/{}/'.format(bucket, edition, dir), - 'gsutil cp "$$fname.sha256" gs://{}/{}/{}/'.format(bucket, edition, dir), ]) + if ver_mode == 'main': + installer_commands.extend([ + 'gsutil cp $$fname gs://{}/{}/{}/'.format(bucket, edition, dir), + 'gsutil cp "$$fname.sha256" gs://{}/{}/{}/'.format(bucket, edition, dir), + ]) + else: + installer_commands.extend([ + 'gsutil cp $$fname gs://{}/{}/{}/{}/'.format(bucket, ver_part, edition, dir), + 'gsutil cp "$$fname.sha256" gs://{}/{}/{}/{}/'.format(bucket, ver_part, edition, dir), + ]) steps.append({ 'name': 'build-windows-installer', 'image': wix_image, @@ -1050,8 +1007,6 @@ def get_windows_steps(edition, ver_mode, is_downstream=False): if edition in ('enterprise', 'enterprise2'): if ver_mode == 'release': committish = '${DRONE_TAG}' - elif ver_mode == 'test-release': - committish = 'main' elif ver_mode == 'release-branch': committish = '$$env:DRONE_BRANCH' else: diff --git a/scripts/generate-a11y-report.sh b/scripts/generate-a11y-report.sh index 17e12598e1d..d499af62b94 100755 --- a/scripts/generate-a11y-report.sh +++ b/scripts/generate-a11y-report.sh @@ -22,8 +22,8 @@ if [ "$BASE_URL" != "" ]; then echo -e "BASE_URL set, skipping starting server" else # Start it in the background - ./e2e/start-server > e2e/server.log & - ./e2e/wait-for-grafana + ./scripts/grafana-server/start-server > scripts/grafana-server/server.log & + ./scripts/grafana-server/wait-for-grafana fi # Run accessibility command diff --git a/scripts/grafana-server/custom.ini b/scripts/grafana-server/custom.ini new file mode 100644 index 00000000000..e69de29bb2d diff --git a/e2e/kill-server b/scripts/grafana-server/kill-server similarity index 67% rename from e2e/kill-server rename to scripts/grafana-server/kill-server index 70bf9f909fd..7b9e38cda78 100755 --- a/e2e/kill-server +++ b/scripts/grafana-server/kill-server @@ -1,6 +1,6 @@ #!/bin/bash -. e2e/variables +. scripts/grafana-server/variables if [ -f "$PIDFILE" ]; then echo -e "Found pidfile, killing running grafana-server" @@ -8,4 +8,4 @@ if [ -f "$PIDFILE" ]; then rm $PIDFILE fi -rm -rf e2e/tmp +rm -rf scripts/grafana-server/tmp diff --git a/e2e/start-server b/scripts/grafana-server/start-server similarity index 94% rename from e2e/start-server rename to scripts/grafana-server/start-server index 57a79b8645f..b672a8abd0c 100755 --- a/e2e/start-server +++ b/scripts/grafana-server/start-server @@ -1,12 +1,12 @@ #!/bin/bash set -eo pipefail -. e2e/variables +. scripts/grafana-server/variables PORT=${PORT:-$DEFAULT_PORT} PACKAGE_FILE=${PACKAGE_FILE:-$DEFAULT_PACKAGE_FILE} -./e2e/kill-server +./scripts/grafana-server/kill-server mkdir $RUNDIR diff --git a/e2e/variables b/scripts/grafana-server/variables similarity index 83% rename from e2e/variables rename to scripts/grafana-server/variables index 13fa4bf360b..3b1cdac4ebf 100644 --- a/e2e/variables +++ b/scripts/grafana-server/variables @@ -1,6 +1,6 @@ #!/bin/bash -DEFAULT_RUNDIR=e2e/tmp +DEFAULT_RUNDIR=scripts/grafana-server/tmp RUNDIR=${RUNDIR:-$DEFAULT_RUNDIR} HOME_PATH=$PWD/$RUNDIR PIDFILE=$RUNDIR/pid diff --git a/e2e/wait-for-grafana b/scripts/grafana-server/wait-for-grafana similarity index 87% rename from e2e/wait-for-grafana rename to scripts/grafana-server/wait-for-grafana index b3c9839918c..a77972fb167 100755 --- a/e2e/wait-for-grafana +++ b/scripts/grafana-server/wait-for-grafana @@ -1,7 +1,7 @@ #!/bin/bash set -eo pipefail -. e2e/variables +. scripts/grafana-server/variables HOST=${HOST:-$DEFAULT_HOST} PORT=${PORT:-$DEFAULT_PORT}