--- kind: pipeline type: docker name: test-pr platform: os: linux arch: amd64 steps: - name: identify-runner image: alpine:3.12 commands: - echo $DRONE_RUNNER_NAME - name: initialize image: grafana/build-container:1.2.26 commands: - curl -fLO https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v$${GRABPL_VERSION}/grabpl - chmod +x grabpl - mkdir -p bin - mv grabpl bin - curl -fLO https://github.com/jwilder/dockerize/releases/download/v$${DOCKERIZE_VERSION}/dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz - tar -C bin -xzvf dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz - rm dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz - yarn install --frozen-lockfile --no-progress environment: DOCKERIZE_VERSION: 0.6.1 GRABPL_VERSION: 0.5.9 - name: lint-backend image: grafana/build-container:1.2.26 commands: - golangci-lint run --config scripts/go/configs/.golangci.toml ./pkg/... - revive -formatter stylish -config scripts/go/configs/revive.toml ./pkg/... - ./scripts/revive-strict - ./scripts/tidy-check.sh environment: CGO_ENABLED: 1 depends_on: - initialize - name: codespell image: grafana/build-container:1.2.26 commands: - "echo -e \"unknwon\nreferer\nerrorstring\neror\niam\" > words_to_ignore.txt" - codespell -I words_to_ignore.txt docs/ depends_on: - initialize - name: shellcheck image: grafana/build-container:1.2.26 commands: - curl -fLO http://storage.googleapis.com/grafana-downloads/ci-dependencies/shellcheck-v$${VERSION}.linux.x86_64.tar.xz - echo $$CHKSUM shellcheck-v$${VERSION}.linux.x86_64.tar.xz | sha512sum --check --strict --status - tar xf shellcheck-v$${VERSION}.linux.x86_64.tar.xz - mv shellcheck-v$${VERSION}/shellcheck /usr/local/bin/ - rm -rf shellcheck-v$${VERSION}* - ./bin/grabpl shellcheck environment: CHKSUM: beca3d7819a6bdcfbd044576df4fc284053b48f468b2f03428fe66f4ceb2c05d9b5411357fa15003cb0311406c255084cf7283a3b8fce644c340c2f6aa910b9f VERSION: 0.7.1 depends_on: - initialize - name: test-backend image: grafana/build-container:1.2.26 commands: - ./bin/grabpl test-backend - ./bin/grabpl integration-tests depends_on: - initialize - lint-backend - name: test-frontend image: grafana/build-container:1.2.26 commands: - yarn run ci:test-frontend environment: TEST_MAX_WORKERS: 50% depends_on: - initialize - name: build-backend image: grafana/build-container:1.2.26 commands: - ./bin/grabpl build-backend --jobs 8 --edition oss --build-id $DRONE_BUILD_NUMBER --variants linux-x64,linux-x64-musl,osx64,win64 --no-pull-enterprise depends_on: - initialize - lint-backend - test-backend - name: build-frontend image: grafana/build-container:1.2.26 commands: - ./bin/grabpl build-frontend --jobs 8 --no-install-deps --edition oss --build-id $DRONE_BUILD_NUMBER --no-pull-enterprise depends_on: - initialize - test-frontend - name: build-plugins image: grafana/build-container:1.2.26 commands: - ./bin/grabpl build-plugins --jobs 8 --edition oss --no-install-deps depends_on: - initialize - lint-backend - name: package image: grafana/build-container:1.2.26 commands: - . scripts/build/gpg-test-vars.sh && ./bin/grabpl package --jobs 8 --edition oss --build-id $DRONE_BUILD_NUMBER --no-pull-enterprise --variants linux-x64,linux-x64-musl,osx64,win64 depends_on: - build-backend - build-frontend - build-plugins - test-backend - test-frontend - codespell - shellcheck - name: end-to-end-tests-server image: grafana/build-container:1.2.26 detach: true commands: - ./e2e/start-server depends_on: - package - name: end-to-end-tests image: grafana/ci-e2e:12.18-1 commands: - ./node_modules/.bin/cypress install - ./bin/grabpl e2e-tests environment: HOST: end-to-end-tests-server depends_on: - end-to-end-tests-server - name: build-storybook image: grafana/build-container:1.2.26 commands: - yarn storybook:build depends_on: - package - name: build-docs-website image: grafana/docs-base:latest commands: - mkdir -p /hugo/content/docs/grafana - cp -r docs/sources /hugo/content/docs/grafana/latest - cd /hugo && make prod depends_on: - initialize - name: copy-packages-for-docker image: grafana/build-container:1.2.26 commands: - cp dist/*.tar.gz packaging/docker/ depends_on: - package - name: build-docker-images image: grafana/drone-grafana-docker:0.2.0 settings: archs: amd64 dry_run: true edition: oss depends_on: - copy-packages-for-docker - name: postgres-integration-tests image: grafana/build-container:1.2.26 commands: - apt-get update - apt-get install -yq postgresql-client - ./bin/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 environment: GRAFANA_TEST_DB: postgres PGPASSWORD: grafanatest POSTGRES_HOST: postgres depends_on: - test-backend - test-frontend - name: mysql-integration-tests image: grafana/build-container:1.2.26 commands: - apt-get update - apt-get install -yq default-mysql-client - ./bin/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 environment: GRAFANA_TEST_DB: mysql MYSQL_HOST: mysql depends_on: - test-backend - test-frontend services: - name: postgres image: postgres:12.3-alpine environment: POSTGRES_DB: grafanatest POSTGRES_PASSWORD: grafanatest POSTGRES_USER: grafanatest - name: mysql image: mysql:5.6.48 environment: MYSQL_DATABASE: grafana_tests MYSQL_PASSWORD: password MYSQL_ROOT_PASSWORD: rootpass MYSQL_USER: grafana trigger: event: - pull_request --- kind: pipeline type: docker name: test-master platform: os: linux arch: amd64 steps: - name: identify-runner image: alpine:3.12 commands: - echo $DRONE_RUNNER_NAME - name: initialize image: grafana/build-container:1.2.26 commands: - curl -fLO https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v$${GRABPL_VERSION}/grabpl - chmod +x grabpl - mkdir -p bin - mv grabpl bin - curl -fLO https://github.com/jwilder/dockerize/releases/download/v$${DOCKERIZE_VERSION}/dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz - tar -C bin -xzvf dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz - rm dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz - yarn install --frozen-lockfile --no-progress environment: DOCKERIZE_VERSION: 0.6.1 GRABPL_VERSION: 0.5.9 - name: lint-backend image: grafana/build-container:1.2.26 commands: - golangci-lint run --config scripts/go/configs/.golangci.toml ./pkg/... - revive -formatter stylish -config scripts/go/configs/revive.toml ./pkg/... - ./scripts/revive-strict - ./scripts/tidy-check.sh environment: CGO_ENABLED: 1 depends_on: - initialize - name: codespell image: grafana/build-container:1.2.26 commands: - "echo -e \"unknwon\nreferer\nerrorstring\neror\niam\" > words_to_ignore.txt" - codespell -I words_to_ignore.txt docs/ depends_on: - initialize - name: shellcheck image: grafana/build-container:1.2.26 commands: - curl -fLO http://storage.googleapis.com/grafana-downloads/ci-dependencies/shellcheck-v$${VERSION}.linux.x86_64.tar.xz - echo $$CHKSUM shellcheck-v$${VERSION}.linux.x86_64.tar.xz | sha512sum --check --strict --status - tar xf shellcheck-v$${VERSION}.linux.x86_64.tar.xz - mv shellcheck-v$${VERSION}/shellcheck /usr/local/bin/ - rm -rf shellcheck-v$${VERSION}* - ./bin/grabpl shellcheck environment: CHKSUM: beca3d7819a6bdcfbd044576df4fc284053b48f468b2f03428fe66f4ceb2c05d9b5411357fa15003cb0311406c255084cf7283a3b8fce644c340c2f6aa910b9f VERSION: 0.7.1 depends_on: - initialize - name: test-backend image: grafana/build-container:1.2.26 commands: - ./bin/grabpl test-backend - ./bin/grabpl integration-tests depends_on: - initialize - lint-backend - name: test-frontend image: grafana/build-container:1.2.26 commands: - yarn run ci:test-frontend environment: TEST_MAX_WORKERS: 50% depends_on: - initialize - name: frontend-metrics image: grafana/build-container:1.2.26 commands: - ./scripts/ci-frontend-metrics.sh | ./bin/grabpl publish-metrics $${GRAFANA_MISC_STATS_API_KEY} environment: GRAFANA_MISC_STATS_API_KEY: from_secret: grafana_misc_stats_api_key depends_on: - initialize - name: build-backend image: grafana/build-container:1.2.26 commands: - ./bin/grabpl build-backend --jobs 8 --edition oss --build-id $DRONE_BUILD_NUMBER --no-pull-enterprise depends_on: - initialize - lint-backend - test-backend - name: build-frontend image: grafana/build-container:1.2.26 commands: - ./bin/grabpl build-frontend --jobs 8 --no-install-deps --edition oss --build-id $DRONE_BUILD_NUMBER --no-pull-enterprise depends_on: - initialize - test-frontend - name: build-plugins image: grafana/build-container:1.2.26 commands: - ./bin/grabpl build-plugins --jobs 8 --edition oss --no-install-deps depends_on: - initialize - lint-backend - name: package image: grafana/build-container:1.2.26 commands: - . scripts/build/gpg-test-vars.sh && ./bin/grabpl package --jobs 8 --edition oss --build-id $DRONE_BUILD_NUMBER --no-pull-enterprise depends_on: - build-backend - build-frontend - build-plugins - test-backend - test-frontend - codespell - shellcheck - name: end-to-end-tests-server image: grafana/build-container:1.2.26 detach: true commands: - ./e2e/start-server depends_on: - package - name: end-to-end-tests image: grafana/ci-e2e:12.18-1 commands: - ./node_modules/.bin/cypress install - ./bin/grabpl e2e-tests environment: HOST: end-to-end-tests-server depends_on: - end-to-end-tests-server - name: build-storybook image: grafana/build-container:1.2.26 commands: - yarn storybook:build depends_on: - package - name: publish-storybook image: grafana/grafana-ci-deploy:1.2.6 commands: - printenv GCP_KEY | base64 -d > /tmp/gcpkey.json - gcloud auth activate-service-account --key-file=/tmp/gcpkey.json - echo gsutil -m rsync -d -r ./packages/grafana-ui/dist/storybook gs://grafana-storybook/canary environment: GCP_KEY: from_secret: gcp_key depends_on: - build-storybook - name: build-docs-website image: grafana/docs-base:latest commands: - mkdir -p /hugo/content/docs/grafana - cp -r docs/sources /hugo/content/docs/grafana/latest - cd /hugo && make prod depends_on: - initialize - name: copy-packages-for-docker image: grafana/build-container:1.2.26 commands: - cp dist/*.tar.gz packaging/docker/ depends_on: - package - name: build-docker-images image: grafana/drone-grafana-docker:0.2.0 settings: dry_run: true edition: oss depends_on: - copy-packages-for-docker - name: build-docker-images-ubuntu image: grafana/drone-grafana-docker:0.2.0 settings: dry_run: true edition: oss ubuntu: true depends_on: - copy-packages-for-docker - name: postgres-integration-tests image: grafana/build-container:1.2.26 commands: - apt-get update - apt-get install -yq postgresql-client - ./bin/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 environment: GRAFANA_TEST_DB: postgres PGPASSWORD: grafanatest POSTGRES_HOST: postgres depends_on: - test-backend - test-frontend - name: mysql-integration-tests image: grafana/build-container:1.2.26 commands: - apt-get update - apt-get install -yq default-mysql-client - ./bin/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 environment: GRAFANA_TEST_DB: mysql MYSQL_HOST: mysql depends_on: - test-backend - test-frontend - name: release-next-npm-packages image: grafana/build-container:1.2.26 commands: - npx lerna bootstrap - echo "//registry.npmjs.org/:_authToken=$${NPM_TOKEN}" >> ~/.npmrc - echo ./scripts/circle-release-next-packages.sh environment: NPM_TOKEN: from_secret: npm_token depends_on: - end-to-end-tests - name: publish-packages image: grafana/grafana-ci-deploy:1.2.6 commands: - echo ./bin/grabpl publish-packages --edition oss depends_on: - package - end-to-end-tests - mysql-integration-tests - postgres-integration-tests services: - name: postgres image: postgres:12.3-alpine environment: POSTGRES_DB: grafanatest POSTGRES_PASSWORD: grafanatest POSTGRES_USER: grafanatest - name: mysql image: mysql:5.6.48 environment: MYSQL_DATABASE: grafana_tests MYSQL_PASSWORD: password MYSQL_ROOT_PASSWORD: rootpass MYSQL_USER: grafana trigger: branch: - master event: - push --- kind: pipeline type: docker name: windows-installer-master platform: os: windows arch: amd64 version: 1809 steps: - name: identify-runner image: mcr.microsoft.com/windows:1809 commands: - echo $Env:DRONE_RUNNER_NAME - name: build-windows-installer image: grafana/ci-wix:0.1.1 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 - $$ProgressPreference = "SilentlyContinue" - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.9/windows/grabpl.exe -OutFile grabpl.exe - Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/oss/master/grafana-7.2.0-9fffe273pre.windows-amd64.zip -OutFile grafana.zip - cp C:\App\nssm-2.24.zip . - ./grabpl.exe windows-installer --edition oss grafana.zip - $$fname = ((Get-Childitem grafana*.msi -name) -split "`n")[0] - echo "gsutil cp $$fname gs://grafana-downloads/oss/master/" - echo "gsutil cp $$fname.sha256 gs://grafana-downloads/oss/master/" environment: GCP_KEY: from_secret: gcp_key trigger: branch: - master event: - push depends_on: - test-master ...