Run E2E against Grafana Cloud #38
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: Setup Node.js environment | |
| # uses: actions/setup-node@v6 | |
| # with: | |
| # node-version-file: .nvmrc | |
| # cache: 'npm' | |
| - 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: Install npm dependencies | |
| # run: | | |
| # if [ -f yarn.lock ]; then | |
| # yarn install --frozen-lockfile --non-interactive | |
| # else | |
| # npm ci --no-audit --fund=false | |
| # fi | |
| #- name: Install Playwright Browsers | |
| # run: npx playwright install --with-deps chromium | |
| - name: Run Grafana Bench tests | |
| run: | | |
| set -euo pipefail | |
| docker run \ | |
| --rm \ | |
| --network=host \ | |
| --volume "$PWD:/tests" \ | |
| us-docker.pkg.dev/grafanalabs-global/docker-grafana-bench-prod/grafana-bench-playwright:v0.6.3 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 |