Cherry pick e2e test server changes

This commit is contained in:
Dimitris Sotirakis
2022-01-25 15:49:31 +02:00
committed by dsotirakis
parent 2f6f9230bb
commit a53fcac7b1
17 changed files with 114 additions and 1450 deletions
+2 -2
View File
@@ -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()
+54 -1318
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -6,5 +6,6 @@ devenv
data
dist
e2e/tmp
scripts/grafana-server/tmp
public/lib/monaco
deployment_tools_config.json
+4
View File
@@ -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
+1
View File
@@ -7,6 +7,7 @@ public/vendor/
vendor/
/data/
e2e/tmp
scripts/grafana-server/tmp
public/build/
public/sass/*.generated.scss
devenv/
+2 -2
View File
@@ -16,8 +16,8 @@ BASE_URL=http://172.0.10.2:3333 yarn e2e
The above commands use some utils scripts under [_\<repo-root>/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 _\<repo-root>/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 _\<repo-root>/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 <debug|dev|noarg>` Starts cypress in different modes.
## Test suites
+1 -1
View File
@@ -1,7 +1,7 @@
#!/bin/bash
set -xeo pipefail
. e2e/variables
. scripts/grafana-server/variables
HOST=${HOST:-$DEFAULT_HOST}
PORT=${PORT:-$DEFAULT_PORT}
+3 -3
View File
@@ -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 "$@"
+1 -1
View File
@@ -1,5 +1,5 @@
#!/bin/bash
. e2e/variables
. scripts/grafana-server/variables
./e2e/run-suite verify/specs
-33
View File
@@ -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:
+37 -82
View File
@@ -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:
+2 -2
View File
@@ -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
View File
@@ -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
@@ -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
@@ -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
@@ -1,7 +1,7 @@
#!/bin/bash
set -eo pipefail
. e2e/variables
. scripts/grafana-server/variables
HOST=${HOST:-$DEFAULT_HOST}
PORT=${PORT:-$DEFAULT_PORT}