Skip to content

Run E2E against Grafana Cloud #43

Run E2E against Grafana Cloud

Run E2E against Grafana Cloud #43

Workflow file for this run

name: Grafana Cloud E2E tests
on:
schedule:
- cron: '0 9 * * *' # Daily at 09:00 UTC
# TODO: test, remove later
push:
branches:
- main
pull_request:
defaults:
run:
shell: bash
permissions:
contents: read
jobs:
# @TODO: Remove the `build` job later
# build:
# name: Build
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v5
# with:
# persist-credentials: false
# - uses: actions/setup-go@v6
# with:
# go-version: 'stable'
# - name: Build backend
# uses: magefile/mage-action@6f50bbb8ea47d56e62dee92392788acbc8192d0b
# with:
# args: buildAll
# version: latest
# - name: Install frontend dependencies
# run: npm ci --no-audit --fund=false
# - name: Build frontend
# run: npm run build
# env:
# NODE_OPTIONS: '--max_old_space_size=4096'
e2e:
name: Bench Tests
# needs: build
runs-on: ubuntu-latest
timeout-minutes: 60
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Get secrets from Vault
id: get-secrets
# Only execute this action in a trusted context
if: |
github.event_name != 'pull_request' ||
github.event.pull_request.head.repo.full_name == github.repository
uses: grafana/shared-workflows/actions/get-vault-secrets@get-vault-secrets/v1.3.0
with:
common_secrets: |
PLAYWRIGHT_GRAFANA_PASSWORD=data-sources/e2e:grafana-pw
PLAYWRIGHT_GRAFANA_USERNAME=data-sources/e2e:grafana-username
repo_secrets: |
DS_INSTANCE_HOST=ds-instance:host
DS_INSTANCE_PASSWORD=ds-instance:password
DS_INSTANCE_PORT=ds-instance:port
DS_INSTANCE_USERNAME=ds-instance:username
export_env: false
- name: report instance
run: |
echo "${{ fromJSON(steps.get-secrets.outputs.secrets).DS_INSTANCE_HOST }}" "${{ fromJSON(steps.get-secrets.outputs.secrets).DS_INSTANCE_PORT }}"
- name: Run Grafana Bench tests
run: |
set -euo pipefail
docker run \
--rm \
--network=host \
--volume "$PWD:/tests" \
us-docker.pkg.dev/grafanalabs-dev/docker-grafana-bench-dev/grafana-bench-playwright:dev-latest test \
--grafana-version "rrc-instant" \
--grafana-admin-password "${{ fromJSON(steps.get-secrets.outputs.secrets).PLAYWRIGHT_GRAFANA_PASSWORD }}" \
--grafana-admin-user "${{ fromJSON(steps.get-secrets.outputs.secrets).PLAYWRIGHT_GRAFANA_USERNAME }}" \
--grafana-url "https://datasourcese2e.grafana-dev.net" \
--log-level debug \
--pw-execute "npm run e2e" \
--pw-prepare "npm ci --no-audit --fund=false; npx playwright install" \
--test-env 'CI=true,DS_INSTANCE_HOST=${{ fromJSON(steps.get-secrets.outputs.secrets).DS_INSTANCE_HOST }},DS_INSTANCE_PASSWORD=${{ fromJSON(steps.get-secrets.outputs.secrets).DS_INSTANCE_PASSWORD }},DS_INSTANCE_PORT=${{ fromJSON(steps.get-secrets.outputs.secrets).DS_INSTANCE_PORT }},DS_INSTANCE_USERNAME=${{ fromJSON(steps.get-secrets.outputs.secrets).DS_INSTANCE_USERNAME }},DS_PDC_NETWORK_NAME=datasources-pdc-network-aws-datasource' \
--test-runner playwright \
--test-verbose
- name: Archive Playwright artifacts
uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report
path: playwright-report/
retention-days: 1