mirror of https://github.com/grafana/grafana
Chore: Enable PR testing in Drone (#26189)
* Add Drone configuration
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build front-end before testing it
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade grafana/build-container
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add packaging step
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Trigger on push
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove some steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Enable steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Install Dockerize
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use node image for test-frontend
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Increase number of test workers
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Make plugin installation depend on frontend tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Make integration tests depend on frontend tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use grafana/build-container also for front-end tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade dependencies in order to fix front-end tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Depend on es-check
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Dont' depend on tests before building front-end
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix packaging
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Simplify
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Try to build images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove steps
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Install netcat
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Include golangci-lint with grafana/build-container
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build storybook and docs website
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use build image with root user
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drop CircleCI dependencies
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix e2e under Drone
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Execute e2e server separately
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use own plugin for building Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use Starlark to configure Drone
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add enterprise steps to pipeline
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add more enterprise steps to pipeline
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Maintain Yarn cache
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build enterprise Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Build Ubuntu Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Refactor
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add Postgres integration test
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Add MySQL integration test
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix integration tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Parameterize integration test DB connections
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Categorize integration tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use grabpl integration-tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unintended change
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Disable Ubuntu Docker images for PR pipeline
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Regenerate yarn.lock
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade grabpl
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Restore Yarn cache before installing in grafana-enterprise
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Use separate pipelines for OSS and enterprise
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Let OSS builds depend on tests
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Restore Go cache before building back-end
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Reduce number of variants built for PRs
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix building of Docker images
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Simplify logic
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Use Starlark
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Fix syntax error
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Convert .drone.star to YAML
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Upgrade AWS Go SDK
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Drone: Fix Go linting
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Undo irrelevant changes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Revert "Undo irrelevant changes"
This reverts commit 5152f65972
.
* Undo irrelevant changes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* e2e: Support Circle
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unused script
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* TypeScript fixes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* TypeScript fixes
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unused script
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* More Drone support
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove unused script
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Fix build on Circle
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
* Remove TODO comment
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
pull/26241/head
parent
1391575853
commit
d28d495235
@ -0,0 +1,488 @@ |
||||
def main(ctx): |
||||
return pr_pipeline_set() |
||||
|
||||
build_image = 'grafana/build-container:1.2.21' |
||||
grafana_docker_image = 'grafana/drone-grafana-docker:0.2.0' |
||||
exclude_forks_cond = { |
||||
'repo': { |
||||
'include': [ |
||||
'grafana/grafana', |
||||
'aknuds1/grafana', |
||||
], |
||||
}, |
||||
} |
||||
|
||||
pr_kind = 'pr' |
||||
|
||||
restore_yarn_cache = 'rm -rf $(yarn cache dir) && cp -r yarn-cache $(yarn cache dir)' |
||||
def install_deps(exclude_forks=False): |
||||
obj = { |
||||
'name': 'install-deps', |
||||
'image': build_image, |
||||
'environment': { |
||||
'GRABPL_VERSION': '0.4.15', |
||||
'DOCKERIZE_VERSION': '0.6.1', |
||||
}, |
||||
'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', |
||||
# Keep the Yarn cache for subsequent steps |
||||
'cp -r $(yarn cache dir) yarn-cache', |
||||
], |
||||
} |
||||
if exclude_forks: |
||||
obj['when'] = exclude_forks_cond |
||||
|
||||
return obj |
||||
|
||||
def pr_pipeline_set(): |
||||
return pipeline_set(kind=pr_kind, name='test-pr') |
||||
|
||||
def pipeline_set(kind, name): |
||||
"""Generate a certain kind of pipeline set.""" |
||||
if kind not in [ |
||||
pr_kind, |
||||
]: |
||||
# There should be a 'fail' function in Starlark, but won't build |
||||
return [] |
||||
|
||||
return [ |
||||
{ |
||||
'kind': 'pipeline', |
||||
'type': 'docker', |
||||
'name': '{}-oss'.format(name), |
||||
'trigger': { |
||||
'event': ['pull_request',], |
||||
}, |
||||
'services': [ |
||||
{ |
||||
'name': 'postgres', |
||||
'image': 'postgres:12.3-alpine', |
||||
'environment': { |
||||
'POSTGRES_USER': 'grafanatest', |
||||
'POSTGRES_PASSWORD': 'grafanatest', |
||||
'POSTGRES_DB': 'grafanatest', |
||||
}, |
||||
}, |
||||
{ |
||||
'name': 'mysql', |
||||
'image': 'mysql:5.6.48', |
||||
'environment': { |
||||
'MYSQL_ROOT_PASSWORD': 'rootpass', |
||||
'MYSQL_DATABASE': 'grafana_tests', |
||||
'MYSQL_USER': 'grafana', |
||||
'MYSQL_PASSWORD': 'password', |
||||
}, |
||||
}, |
||||
], |
||||
'steps': [ |
||||
install_deps(), |
||||
{ |
||||
'name': 'lint-go', |
||||
'image': build_image, |
||||
'environment': { |
||||
# We need CGO because of go-sqlite3 |
||||
'CGO_ENABLED': '1', |
||||
}, |
||||
'depends_on': [ |
||||
'install-deps', |
||||
], |
||||
'commands': [ |
||||
'make lint-go', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'codespell', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
'install-deps', |
||||
], |
||||
'commands': [ |
||||
# Important: all words have to be in lowercase, and separated by "\n". |
||||
'echo -e "unknwon\nreferer\nerrorstring\neror\niam" > words_to_ignore.txt', |
||||
'codespell -I words_to_ignore.txt docs/', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'shellcheck', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
'install-deps', |
||||
], |
||||
'environment': { |
||||
'VERSION': '0.7.1', |
||||
'CHKSUM': 'beca3d7819a6bdcfbd044576df4fc284053b48f468b2f03428fe66f4ceb2c05d9b5411357fa15003cb0' + |
||||
'311406c255084cf7283a3b8fce644c340c2f6aa910b9f', |
||||
}, |
||||
'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', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'build-backend', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
'install-deps', |
||||
'lint-go', |
||||
'test-backend', |
||||
], |
||||
'environment': { |
||||
'GITHUB_TOKEN': { |
||||
'from_secret': 'github_token', |
||||
}, |
||||
}, |
||||
'commands': [ |
||||
'rm -rf $(go env GOCACHE) && cp -r go-cache $(go env GOCACHE)', |
||||
'./bin/grabpl build-backend --github-token "$${GITHUB_TOKEN}" --edition oss ' + |
||||
'--build-id $DRONE_BUILD_NUMBER --variants linux-x64,linux-x64-musl,osx64,win64', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'build-frontend', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
'install-deps', |
||||
'test-frontend', |
||||
], |
||||
'environment': { |
||||
'GITHUB_TOKEN': { |
||||
'from_secret': 'github_token', |
||||
}, |
||||
}, |
||||
'commands': [ |
||||
restore_yarn_cache, |
||||
'./bin/grabpl build-frontend --no-install-deps --github-token "$${GITHUB_TOKEN}" ' + |
||||
'--edition oss --build-id $DRONE_BUILD_NUMBER', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'test-backend', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
'install-deps', |
||||
'lint-go', |
||||
], |
||||
'commands': [ |
||||
# First execute non-integration tests in parallel, since it should be safe |
||||
'go test -covermode=atomic ./pkg/...', |
||||
# Then execute integration tests in serial |
||||
'./bin/grabpl integration-tests', |
||||
# Keep the test cache |
||||
'cp -r $(go env GOCACHE) go-cache', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'test-frontend', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
'install-deps', |
||||
], |
||||
'commands': [ |
||||
restore_yarn_cache, |
||||
'yarn run prettier:check', |
||||
'yarn run packages:typecheck', |
||||
'yarn run typecheck', |
||||
'yarn run test', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'build-plugins', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
'install-deps', |
||||
'lint-go', |
||||
], |
||||
'commands': [ |
||||
restore_yarn_cache, |
||||
'./bin/grabpl build-plugins --edition oss --no-install-deps', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'package', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
'build-backend', |
||||
'build-frontend', |
||||
'build-plugins', |
||||
'test-backend', |
||||
'test-frontend', |
||||
'codespell', |
||||
'shellcheck', |
||||
], |
||||
'environment': { |
||||
'GITHUB_TOKEN': { |
||||
'from_secret': 'github_token', |
||||
}, |
||||
}, |
||||
'commands': [ |
||||
'. scripts/build/gpg-test-vars.sh && ./bin/grabpl package --github-token ' + |
||||
'"$${GITHUB_TOKEN}" --edition oss --build-id $DRONE_BUILD_NUMBER ' + |
||||
'--variants linux-x64,linux-x64-musl,osx64,win64', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'end-to-end-tests-server', |
||||
'image': build_image, |
||||
'detach': True, |
||||
'depends_on': [ |
||||
'package', |
||||
], |
||||
'commands': [ |
||||
'./e2e/start-server', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'end-to-end-tests', |
||||
'image': 'grafana/ci-e2e:12.18-1', |
||||
'depends_on': [ |
||||
'end-to-end-tests-server', |
||||
], |
||||
'environment': { |
||||
'HOST': 'end-to-end-tests-server', |
||||
}, |
||||
'commands': [ |
||||
restore_yarn_cache, |
||||
# Have to re-install Cypress since it insists on searching for its binary beneath /root/.cache, |
||||
# even though the Yarn cache directory is beneath /usr/local/share somewhere |
||||
'./node_modules/.bin/cypress install', |
||||
'./e2e/wait-for-grafana', |
||||
'./e2e/run-suite', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'publish-storybook', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
# Best to ensure that this step doesn't mess with what's getting built and packaged |
||||
'package', |
||||
], |
||||
'commands': [ |
||||
restore_yarn_cache, |
||||
'yarn storybook:build', |
||||
# TODO: Enable the following for non-forked PRs |
||||
# - echo $GCP_GRAFANA_UPLOAD_KEY > /tmp/gcpkey.json |
||||
# - gcloud auth activate-service-account --key-file=/tmp/gcpkey.json |
||||
# - gsutil -m rsync -d -r ./packages/grafana-ui/dist/storybook gs://grafana-storybook/latest |
||||
# - gsutil -m rsync -d -r ./packages/grafana-ui/dist/storybook gs://grafana-storybook/$CIRCLE_TAG |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'build-docs-website', |
||||
# Use latest revision here, since we want to catch if it breaks |
||||
'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', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'copy-packages-for-docker', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
'package', |
||||
], |
||||
'commands': [ |
||||
'cp dist/*.tar.gz packaging/docker/', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'build-docker-images', |
||||
'image': grafana_docker_image, |
||||
'depends_on': [ |
||||
'copy-packages-for-docker', |
||||
], |
||||
'settings': { |
||||
'dry_run': True, |
||||
'edition': 'oss', |
||||
'archs': 'amd64', |
||||
}, |
||||
}, |
||||
# { |
||||
# 'name': 'build-ubuntu-docker-images', |
||||
# 'image': grafana_docker_image, |
||||
# 'depends_on': [ |
||||
# 'copy-packages-for-docker', |
||||
# ], |
||||
# 'settings': { |
||||
# 'dry_run': True, |
||||
# 'edition': 'oss', |
||||
# 'ubuntu': True, |
||||
# }, |
||||
# }, |
||||
{ |
||||
'name': 'postgres-integration-test', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
'test-backend', |
||||
'test-frontend', |
||||
], |
||||
'environment': { |
||||
'PGPASSWORD': 'grafanatest', |
||||
'GRAFANA_TEST_DB': 'postgres', |
||||
'POSTGRES_HOST': 'postgres', |
||||
}, |
||||
'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', |
||||
'rm -rf $(go env GOCACHE) && cp -r go-cache $(go env GOCACHE)', |
||||
# Make sure that we don't use cached results for another database |
||||
'go clean -testcache', |
||||
'./bin/grabpl integration-tests --database postgres', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'mysql-integration-test', |
||||
'image': build_image, |
||||
'depends_on': [ |
||||
'test-backend', |
||||
'test-frontend', |
||||
], |
||||
'environment': { |
||||
'GRAFANA_TEST_DB': 'mysql', |
||||
'MYSQL_HOST': 'mysql', |
||||
}, |
||||
'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', |
||||
'rm -rf $(go env GOCACHE) && cp -r go-cache $(go env GOCACHE)', |
||||
# Make sure that we don't use cached results for another database |
||||
'go clean -testcache', |
||||
'./bin/grabpl integration-tests --database mysql', |
||||
], |
||||
}, |
||||
], |
||||
}, |
||||
{ |
||||
'kind': 'pipeline', |
||||
'type': 'docker', |
||||
'name': '{}-enterprise'.format(name), |
||||
'trigger': { |
||||
'event': ['pull_request',], |
||||
}, |
||||
'steps': [ |
||||
install_deps(exclude_forks=True), |
||||
{ |
||||
'name': 'build-backend', |
||||
'image': build_image, |
||||
'when': exclude_forks_cond, |
||||
'depends_on': [ |
||||
'install-deps', |
||||
], |
||||
'environment': { |
||||
'GITHUB_TOKEN': { |
||||
'from_secret': 'github_token', |
||||
}, |
||||
}, |
||||
'commands': [ |
||||
'./bin/grabpl build-backend --github-token "$${GITHUB_TOKEN}" --edition enterprise ' + |
||||
'--build-id $DRONE_BUILD_NUMBER --variants linux-x64,linux-x64-musl,osx64,win64', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'build-frontend', |
||||
'image': build_image, |
||||
'when': exclude_forks_cond, |
||||
'depends_on': [ |
||||
'install-deps', |
||||
], |
||||
'environment': { |
||||
'GITHUB_TOKEN': { |
||||
'from_secret': 'github_token', |
||||
}, |
||||
}, |
||||
'commands': [ |
||||
restore_yarn_cache, |
||||
'./bin/grabpl build-frontend --no-install-deps --github-token "$${GITHUB_TOKEN}" ' + |
||||
'--edition enterprise --build-id $DRONE_BUILD_NUMBER', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'build-plugins', |
||||
'image': build_image, |
||||
'when': exclude_forks_cond, |
||||
'depends_on': [ |
||||
'install-deps', |
||||
], |
||||
'commands': [ |
||||
restore_yarn_cache, |
||||
'./bin/grabpl build-plugins --edition enterprise --no-install-deps', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'package', |
||||
'image': build_image, |
||||
'when': exclude_forks_cond, |
||||
'depends_on': [ |
||||
'build-backend', |
||||
'build-frontend', |
||||
'build-plugins', |
||||
], |
||||
'environment': { |
||||
'GITHUB_TOKEN': { |
||||
'from_secret': 'github_token', |
||||
}, |
||||
}, |
||||
'commands': [ |
||||
'. scripts/build/gpg-test-vars.sh && ./bin/grabpl package --github-token ' + |
||||
'"$${GITHUB_TOKEN}" --edition enterprise --build-id $DRONE_BUILD_NUMBER ' + |
||||
'--variants linux-x64,linux-x64-musl,osx64,win64', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'copy-packages-for-docker', |
||||
'image': build_image, |
||||
'when': exclude_forks_cond, |
||||
'depends_on': [ |
||||
'package', |
||||
], |
||||
'commands': [ |
||||
'cp dist/*.tar.gz packaging/docker/', |
||||
], |
||||
}, |
||||
{ |
||||
'name': 'build-docker-images', |
||||
'image': grafana_docker_image, |
||||
'when': exclude_forks_cond, |
||||
'depends_on': [ |
||||
'copy-packages-for-docker', |
||||
], |
||||
'settings': { |
||||
'dry_run': True, |
||||
'edition': 'enterprise', |
||||
'archs': 'amd64', |
||||
}, |
||||
}, |
||||
# { |
||||
# 'name': 'build-ubuntu-docker-images', |
||||
# 'image': grafana_docker_image, |
||||
# 'when': exclude_forks_cond, |
||||
# 'depends_on': [ |
||||
# 'copy-packages-for-docker', |
||||
# ], |
||||
# 'settings': { |
||||
# 'dry_run': True, |
||||
# 'edition': 'enterprise', |
||||
# 'ubuntu': True, |
||||
# }, |
||||
# }, |
||||
] |
||||
}, |
||||
] |
@ -0,0 +1,351 @@ |
||||
--- |
||||
kind: pipeline |
||||
type: docker |
||||
name: test-pr-oss |
||||
|
||||
platform: |
||||
os: linux |
||||
arch: amd64 |
||||
|
||||
steps: |
||||
- name: install-deps |
||||
image: grafana/build-container:1.2.21 |
||||
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 |
||||
- cp -r $(yarn cache dir) yarn-cache |
||||
environment: |
||||
DOCKERIZE_VERSION: 0.6.1 |
||||
GRABPL_VERSION: 0.4.15 |
||||
|
||||
- name: lint-go |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- make lint-go |
||||
environment: |
||||
CGO_ENABLED: 1 |
||||
depends_on: |
||||
- install-deps |
||||
|
||||
- name: codespell |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- "echo -e \"unknwon\nreferer\nerrorstring\neror\niam\" > words_to_ignore.txt" |
||||
- codespell -I words_to_ignore.txt docs/ |
||||
depends_on: |
||||
- install-deps |
||||
|
||||
- name: shellcheck |
||||
image: grafana/build-container:1.2.21 |
||||
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: |
||||
- install-deps |
||||
|
||||
- name: build-backend |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- rm -rf $(go env GOCACHE) && cp -r go-cache $(go env GOCACHE) |
||||
- ./bin/grabpl build-backend --github-token "$${GITHUB_TOKEN}" --edition oss --build-id $DRONE_BUILD_NUMBER --variants linux-x64,linux-x64-musl,osx64,win64 |
||||
environment: |
||||
GITHUB_TOKEN: |
||||
from_secret: github_token |
||||
depends_on: |
||||
- install-deps |
||||
- lint-go |
||||
- test-backend |
||||
|
||||
- name: build-frontend |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- rm -rf $(yarn cache dir) && cp -r yarn-cache $(yarn cache dir) |
||||
- ./bin/grabpl build-frontend --no-install-deps --github-token "$${GITHUB_TOKEN}" --edition oss --build-id $DRONE_BUILD_NUMBER |
||||
environment: |
||||
GITHUB_TOKEN: |
||||
from_secret: github_token |
||||
depends_on: |
||||
- install-deps |
||||
- test-frontend |
||||
|
||||
- name: test-backend |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- go test -covermode=atomic ./pkg/... |
||||
- ./bin/grabpl integration-tests |
||||
- cp -r $(go env GOCACHE) go-cache |
||||
depends_on: |
||||
- install-deps |
||||
- lint-go |
||||
|
||||
- name: test-frontend |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- rm -rf $(yarn cache dir) && cp -r yarn-cache $(yarn cache dir) |
||||
- yarn run prettier:check |
||||
- yarn run packages:typecheck |
||||
- yarn run typecheck |
||||
- yarn run test |
||||
depends_on: |
||||
- install-deps |
||||
|
||||
- name: build-plugins |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- rm -rf $(yarn cache dir) && cp -r yarn-cache $(yarn cache dir) |
||||
- ./bin/grabpl build-plugins --edition oss --no-install-deps |
||||
depends_on: |
||||
- install-deps |
||||
- lint-go |
||||
|
||||
- name: package |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- . scripts/build/gpg-test-vars.sh && ./bin/grabpl package --github-token "$${GITHUB_TOKEN}" --edition oss --build-id $DRONE_BUILD_NUMBER --variants linux-x64,linux-x64-musl,osx64,win64 |
||||
environment: |
||||
GITHUB_TOKEN: |
||||
from_secret: github_token |
||||
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.21 |
||||
detach: true |
||||
commands: |
||||
- ./e2e/start-server |
||||
depends_on: |
||||
- package |
||||
|
||||
- name: end-to-end-tests |
||||
image: grafana/ci-e2e:12.18-1 |
||||
commands: |
||||
- rm -rf $(yarn cache dir) && cp -r yarn-cache $(yarn cache dir) |
||||
- ./node_modules/.bin/cypress install |
||||
- ./e2e/wait-for-grafana |
||||
- ./e2e/run-suite |
||||
environment: |
||||
HOST: end-to-end-tests-server |
||||
depends_on: |
||||
- end-to-end-tests-server |
||||
|
||||
- name: publish-storybook |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- rm -rf $(yarn cache dir) && cp -r yarn-cache $(yarn cache dir) |
||||
- 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 |
||||
|
||||
- name: copy-packages-for-docker |
||||
image: grafana/build-container:1.2.21 |
||||
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-test |
||||
image: grafana/build-container:1.2.21 |
||||
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 |
||||
- rm -rf $(go env GOCACHE) && cp -r go-cache $(go env GOCACHE) |
||||
- 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-test |
||||
image: grafana/build-container:1.2.21 |
||||
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 |
||||
- rm -rf $(go env GOCACHE) && cp -r go-cache $(go env GOCACHE) |
||||
- 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-pr-enterprise |
||||
|
||||
platform: |
||||
os: linux |
||||
arch: amd64 |
||||
|
||||
steps: |
||||
- name: install-deps |
||||
image: grafana/build-container:1.2.21 |
||||
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 |
||||
- cp -r $(yarn cache dir) yarn-cache |
||||
environment: |
||||
DOCKERIZE_VERSION: 0.6.1 |
||||
GRABPL_VERSION: 0.4.15 |
||||
when: |
||||
repo: |
||||
- grafana/grafana |
||||
- aknuds1/grafana |
||||
|
||||
- name: build-backend |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- ./bin/grabpl build-backend --github-token "$${GITHUB_TOKEN}" --edition enterprise --build-id $DRONE_BUILD_NUMBER --variants linux-x64,linux-x64-musl,osx64,win64 |
||||
environment: |
||||
GITHUB_TOKEN: |
||||
from_secret: github_token |
||||
when: |
||||
repo: |
||||
- grafana/grafana |
||||
- aknuds1/grafana |
||||
depends_on: |
||||
- install-deps |
||||
|
||||
- name: build-frontend |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- rm -rf $(yarn cache dir) && cp -r yarn-cache $(yarn cache dir) |
||||
- ./bin/grabpl build-frontend --no-install-deps --github-token "$${GITHUB_TOKEN}" --edition enterprise --build-id $DRONE_BUILD_NUMBER |
||||
environment: |
||||
GITHUB_TOKEN: |
||||
from_secret: github_token |
||||
when: |
||||
repo: |
||||
- grafana/grafana |
||||
- aknuds1/grafana |
||||
depends_on: |
||||
- install-deps |
||||
|
||||
- name: build-plugins |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- rm -rf $(yarn cache dir) && cp -r yarn-cache $(yarn cache dir) |
||||
- ./bin/grabpl build-plugins --edition enterprise --no-install-deps |
||||
when: |
||||
repo: |
||||
- grafana/grafana |
||||
- aknuds1/grafana |
||||
depends_on: |
||||
- install-deps |
||||
|
||||
- name: package |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- . scripts/build/gpg-test-vars.sh && ./bin/grabpl package --github-token "$${GITHUB_TOKEN}" --edition enterprise --build-id $DRONE_BUILD_NUMBER --variants linux-x64,linux-x64-musl,osx64,win64 |
||||
environment: |
||||
GITHUB_TOKEN: |
||||
from_secret: github_token |
||||
when: |
||||
repo: |
||||
- grafana/grafana |
||||
- aknuds1/grafana |
||||
depends_on: |
||||
- build-backend |
||||
- build-frontend |
||||
- build-plugins |
||||
|
||||
- name: copy-packages-for-docker |
||||
image: grafana/build-container:1.2.21 |
||||
commands: |
||||
- cp dist/*.tar.gz packaging/docker/ |
||||
when: |
||||
repo: |
||||
- grafana/grafana |
||||
- aknuds1/grafana |
||||
depends_on: |
||||
- package |
||||
|
||||
- name: build-docker-images |
||||
image: grafana/drone-grafana-docker:0.2.0 |
||||
settings: |
||||
archs: amd64 |
||||
dry_run: true |
||||
edition: enterprise |
||||
when: |
||||
repo: |
||||
- grafana/grafana |
||||
- aknuds1/grafana |
||||
depends_on: |
||||
- copy-packages-for-docker |
||||
|
||||
trigger: |
||||
event: |
||||
- pull_request |
||||
|
||||
... |
@ -1,32 +0,0 @@ |
||||
#!/bin/sh |
||||
set -e |
||||
|
||||
OPT="" |
||||
UBUNTU_BASE=0 |
||||
|
||||
while [ "$1" != "" ]; do |
||||
case "$1" in |
||||
"--ubuntu") |
||||
OPT="${OPT} --ubuntu" |
||||
UBUNTU_BASE=1 |
||||
echo "Ubuntu base image enabled" |
||||
shift |
||||
;; |
||||
* ) |
||||
# unknown param causes args to be passed through to $@ |
||||
break |
||||
;; |
||||
esac |
||||
done |
||||
|
||||
_grafana_version=$1 |
||||
./build.sh ${OPT} "$_grafana_version" |
||||
docker login -u "$DOCKER_USER" -p "$DOCKER_PASS" |
||||
|
||||
./push_to_docker_hub.sh ${OPT} "$_grafana_version" |
||||
|
||||
if [ ${UBUNTU_BASE} = "0" ]; then |
||||
if echo "$_grafana_version" | grep -q "^master-"; then |
||||
./deploy_to_k8s.sh "grafana/grafana-dev:$_grafana_version" |
||||
fi |
||||
fi |
@ -1,6 +0,0 @@ |
||||
#!/bin/sh |
||||
|
||||
curl -s --header "Content-Type: application/json" \ |
||||
--data "{\"build_parameters\": {\"CIRCLE_JOB\": \"deploy\", \"IMAGE_NAMES\": \"$1\"}}" \ |
||||
--request POST \ |
||||
https://circleci.com/api/v1.1/project/github/grafana/deployment_tools/tree/master?circle-token=$CIRCLE_TOKEN |
@ -1,11 +1,65 @@ |
||||
package sqlutil |
||||
|
||||
import ( |
||||
"fmt" |
||||
"os" |
||||
) |
||||
|
||||
type TestDB struct { |
||||
DriverName string |
||||
ConnStr string |
||||
} |
||||
|
||||
var TestDB_Sqlite3 = TestDB{DriverName: "sqlite3", ConnStr: ":memory:"} |
||||
var TestDB_Mysql = TestDB{DriverName: "mysql", ConnStr: "grafana:password@tcp(localhost:3306)/grafana_tests?collation=utf8mb4_unicode_ci"} |
||||
var TestDB_Postgres = TestDB{DriverName: "postgres", ConnStr: "user=grafanatest password=grafanatest host=localhost port=5432 dbname=grafanatest sslmode=disable"} |
||||
var TestDB_Mssql = TestDB{DriverName: "mssql", ConnStr: "server=localhost;port=1433;database=grafanatest;user id=grafana;password=Password!"} |
||||
func Sqlite3TestDB() TestDB { |
||||
return TestDB{ |
||||
DriverName: "sqlite3", |
||||
ConnStr: ":memory:", |
||||
} |
||||
} |
||||
|
||||
func MySQLTestDB() TestDB { |
||||
host := os.Getenv("MYSQL_HOST") |
||||
if host == "" { |
||||
host = "localhost" |
||||
} |
||||
port := os.Getenv("MYSQL_PORT") |
||||
if port == "" { |
||||
port = "3306" |
||||
} |
||||
return TestDB{ |
||||
DriverName: "mysql", |
||||
ConnStr: fmt.Sprintf("grafana:password@tcp(%s:%s)/grafana_tests?collation=utf8mb4_unicode_ci", host, port), |
||||
} |
||||
} |
||||
|
||||
func PostgresTestDB() TestDB { |
||||
host := os.Getenv("POSTGRES_HOST") |
||||
if host == "" { |
||||
host = "localhost" |
||||
} |
||||
port := os.Getenv("POSTGRES_PORT") |
||||
if port == "" { |
||||
port = "5432" |
||||
} |
||||
connStr := fmt.Sprintf("user=grafanatest password=grafanatest host=%s port=%s dbname=grafanatest sslmode=disable", |
||||
host, port) |
||||
return TestDB{ |
||||
DriverName: "postgres", |
||||
ConnStr: connStr, |
||||
} |
||||
} |
||||
|
||||
func MSSQLTestDB() TestDB { |
||||
host := os.Getenv("MSSQL_HOST") |
||||
if host == "" { |
||||
host = "localhost" |
||||
} |
||||
port := os.Getenv("MSSQL_PORT") |
||||
if port == "" { |
||||
port = "1433" |
||||
} |
||||
return TestDB{ |
||||
DriverName: "mssql", |
||||
ConnStr: fmt.Sprintf("server=%s;port=%s;database=grafanatest;user id=grafana;password=Password!", host, port), |
||||
} |
||||
} |
||||
|
@ -1,106 +0,0 @@ |
||||
#!/bin/bash |
||||
|
||||
# shellcheck disable=SC2086 |
||||
|
||||
# shellcheck source=./scripts/helpers/exit-if-fail.sh |
||||
source "$(dirname "$0")/../helpers/exit-if-fail.sh" |
||||
# |
||||
# This script is executed from within the container. |
||||
# |
||||
|
||||
set -e |
||||
|
||||
# shellcheck disable=SC2124 |
||||
EXTRA_OPTS="$@" |
||||
|
||||
CCARMV6=/opt/rpi-tools/arm-bcm2708/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc |
||||
CCARMV7=arm-linux-gnueabihf-gcc |
||||
CCARMV7_MUSL=/tmp/arm-linux-musleabihf-cross/bin/arm-linux-musleabihf-gcc |
||||
CCARM64=aarch64-linux-gnu-gcc |
||||
CCARM64_MUSL=/tmp/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc |
||||
CCOSX64=/tmp/osxcross/target/bin/o64-clang |
||||
CCWIN64=x86_64-w64-mingw32-gcc |
||||
CCX64=/tmp/x86_64-centos6-linux-gnu/bin/x86_64-centos6-linux-gnu-gcc |
||||
CCX64_MUSL=/tmp/x86_64-linux-musl-cross/bin/x86_64-linux-musl-gcc |
||||
|
||||
cd /go/src/github.com/grafana/grafana |
||||
echo "current dir: $(pwd)" |
||||
|
||||
function reportFrontEndBuildTime() { |
||||
if echo "$EXTRA_OPTS" | grep -vq enterprise ; then |
||||
# Only report for build job |
||||
# build-enterprise happens right after build on master |
||||
# so there is no need for reporting the same metric again |
||||
exit_if_fail ./scripts/ci-metrics-publisher.sh "grafana.ci-performance.frontend-build=$1" |
||||
fi |
||||
} |
||||
|
||||
|
||||
if [ "$CIRCLE_TAG" != "" ]; then |
||||
echo "Building releases from tag $CIRCLE_TAG" |
||||
OPT="-includeBuildId=false ${EXTRA_OPTS}" |
||||
else |
||||
echo "Building incremental build for $CIRCLE_BRANCH" |
||||
OPT="-buildId=${CIRCLE_WORKFLOW_ID} ${EXTRA_OPTS}" |
||||
fi |
||||
|
||||
echo "Build arguments: $OPT" |
||||
echo "current dir: $(pwd)" |
||||
|
||||
go run build.go -goarch armv6 -cc ${CCARMV6} ${OPT} build |
||||
go run build.go -goarch armv7 -cc ${CCARMV7} ${OPT} build |
||||
go run build.go -goarch arm64 -cc ${CCARM64} ${OPT} build |
||||
go run build.go -goarch armv7 -libc musl -cc ${CCARMV7_MUSL} ${OPT} build |
||||
go run build.go -goarch arm64 -libc musl -cc ${CCARM64_MUSL} ${OPT} build |
||||
go run build.go -goos darwin -cc ${CCOSX64} ${OPT} build |
||||
|
||||
|
||||
go run build.go -goos windows -cc ${CCWIN64} ${OPT} build |
||||
|
||||
# Do not remove CC from the linux build, its there for compatibility with Centos6 |
||||
go run build.go -cc ${CCX64} ${OPT} build |
||||
|
||||
go run build.go -cc ${CCX64_MUSL} -libc musl ${OPT} build |
||||
|
||||
yarn install --pure-lockfile --no-progress |
||||
|
||||
if [ "$CIRCLE_TAG" != "" ]; then |
||||
echo "Building frontend and packaging from tag $CIRCLE_TAG" |
||||
else |
||||
echo "Building frontend and packaging incremental build for $CIRCLE_BRANCH" |
||||
fi |
||||
echo "Building frontend" |
||||
start=$(date +%s%N) |
||||
go run build.go ${OPT} build-frontend |
||||
runtime=$((($(date +%s%N) - start)/1000000)) |
||||
echo "Frontend build took $runtime" |
||||
reportFrontEndBuildTime $runtime |
||||
|
||||
if [ -d "dist" ]; then |
||||
rm -rf dist |
||||
fi |
||||
|
||||
mkdir dist |
||||
go run build.go -gen-version ${OPT} > dist/grafana.version |
||||
|
||||
# Load ruby, needed for packing with fpm |
||||
# shellcheck disable=SC1091 |
||||
source /etc/profile.d/rvm.sh |
||||
|
||||
echo "Packaging" |
||||
go run build.go -goos linux -pkg-arch amd64 ${OPT} package-only |
||||
go run build.go -goos linux -pkg-arch amd64 -libc musl ${OPT} -skipRpm -skipDeb package-only |
||||
|
||||
go run build.go -goos linux -pkg-arch armv6 ${OPT} -skipRpm package-only |
||||
go run build.go -goos linux -pkg-arch armv7 ${OPT} package-only |
||||
go run build.go -goos linux -pkg-arch arm64 ${OPT} package-only |
||||
go run build.go -goos linux -pkg-arch armv7 -libc musl ${OPT} -skipRpm -skipDeb package-only |
||||
go run build.go -goos linux -pkg-arch arm64 -libc musl ${OPT} -skipRpm -skipDeb package-only |
||||
|
||||
go run build.go -goos darwin -pkg-arch amd64 ${OPT} package-only |
||||
|
||||
cp /usr/local/go/lib/time/zoneinfo.zip tools/zoneinfo.zip |
||||
go run build.go -goos windows -pkg-arch amd64 ${OPT} package-only |
||||
rm tools/zoneinfo.zip |
||||
|
||||
go run build.go latest |
@ -0,0 +1,11 @@ |
||||
FROM node:12.18-buster-slim |
||||
|
||||
WORKDIR /root |
||||
|
||||
RUN apt-get update && apt-get install -yq gnupg netcat curl |
||||
RUN curl -fsSL https://dl.google.com/linux/linux_signing_key.pub | apt-key add - && \ |
||||
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list && \ |
||||
# Cypress dependencies |
||||
apt-get update && apt-get install -yq libgtk2.0-0 libgtk-3-0 libnotify-dev libgconf-2-4 libnss3 libxss1 \ |
||||
libasound2 libxtst6 xauth xvfb google-chrome-stable && \ |
||||
apt-get autoremove -y && rm -rf /var/lib/apt/lists/* |
@ -1,14 +0,0 @@ |
||||
#!/bin/bash |
||||
|
||||
cd .. |
||||
|
||||
if [ -z "$CIRCLE_TAG" ]; then |
||||
_target="master" |
||||
else |
||||
_target="$CIRCLE_TAG" |
||||
fi |
||||
|
||||
git clone -b "$_target" --single-branch git@github.com:grafana/grafana-enterprise.git --depth 1 |
||||
|
||||
cd grafana-enterprise || exit |
||||
./build.sh |
Loading…
Reference in new issue