Run E2E against Grafana Cloud #43
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |