Add copy button for span attribute values #179
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: CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
build: | |
name: Build, lint and unit tests | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
outputs: | |
plugin-id: ${{ steps.metadata.outputs.plugin-id }} | |
plugin-version: ${{ steps.metadata.outputs.plugin-version }} | |
has-e2e: ${{ steps.check-for-e2e.outputs.has-e2e }} | |
has-backend: ${{ steps.check-for-backend.outputs.has-backend }} | |
env: | |
GRAFANA_ACCESS_POLICY_TOKEN: ${{ secrets.GRAFANA_ACCESS_POLICY_TOKEN }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- uses: oven-sh/setup-bun@v2 | |
with: | |
bun-version: latest | |
- name: Install dependencies | |
run: bun install --frozen-lockfile | |
- name: Check types | |
run: bun run typecheck | |
- name: Format check | |
run: bun run fmt:check | |
- name: Lint | |
run: bun run lint | |
- name: Unit tests | |
run: bun run test:ci | |
- name: Build frontend | |
run: bun run build | |
- name: Check for E2E | |
id: check-for-e2e | |
run: | | |
if [ -f "playwright.config.ts" ] | |
then | |
echo "has-e2e=true" >> $GITHUB_OUTPUT | |
fi | |
- name: Sign plugin | |
run: bun run sign | |
if: ${{ env.GRAFANA_ACCESS_POLICY_TOKEN != '' }} | |
- name: Get plugin metadata | |
id: metadata | |
run: | | |
sudo apt-get install jq | |
export GRAFANA_PLUGIN_ID=$(cat dist/plugin.json | jq -r .id) | |
export GRAFANA_PLUGIN_VERSION=$(cat dist/plugin.json | jq -r .info.version) | |
export GRAFANA_PLUGIN_ARTIFACT=${GRAFANA_PLUGIN_ID}-${GRAFANA_PLUGIN_VERSION}.zip | |
echo "plugin-id=${GRAFANA_PLUGIN_ID}" >> $GITHUB_OUTPUT | |
echo "plugin-version=${GRAFANA_PLUGIN_VERSION}" >> $GITHUB_OUTPUT | |
echo "archive=${GRAFANA_PLUGIN_ARTIFACT}" >> $GITHUB_OUTPUT | |
- name: Package plugin | |
id: package-plugin | |
run: | | |
mv dist ${PLUGIN_ID} | |
zip ${ARCHIVE} ${PLUGIN_ID} -r | |
env: | |
ARCHIVE: ${{ steps.metadata.outputs.archive }} | |
PLUGIN_ID: ${{ steps.metadata.outputs.plugin-id }} | |
- name: Check plugin.json | |
run: | | |
docker run --pull=always \ | |
-v $PWD/${ARCHIVE}:/archive.zip \ | |
grafana/plugin-validator-cli -analyzer=metadatavalid /archive.zip | |
env: | |
ARCHIVE: ${{ steps.metadata.outputs.archive }} | |
- name: Archive Build | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ steps.metadata.outputs.plugin-id }}-${{ steps.metadata.outputs.plugin-version }} | |
path: ${{ steps.metadata.outputs.plugin-id }} | |
retention-days: 5 | |
resolve-versions: | |
name: Resolve e2e images | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
timeout-minutes: 3 | |
needs: build | |
if: false #${{ needs.build.outputs.has-e2e == 'true' }} | |
outputs: | |
matrix: ${{ steps.resolve-versions.outputs.matrix }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Resolve Grafana E2E versions | |
id: resolve-versions | |
uses: grafana/plugin-actions/e2e-version@main # zizmor: ignore[unpinned-uses] provided by grafana | |
playwright-tests: | |
if: false | |
needs: [resolve-versions, build] | |
timeout-minutes: 15 | |
permissions: | |
contents: read | |
id-token: write | |
pull-requests: write | |
strategy: | |
fail-fast: false | |
matrix: | |
GRAFANA_IMAGE: ${{fromJson(needs.resolve-versions.outputs.matrix)}} | |
name: e2e test ${{ matrix.GRAFANA_IMAGE.name }}@${{ matrix.GRAFANA_IMAGE.VERSION }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Download plugin | |
uses: actions/download-artifact@v4 | |
with: | |
path: dist | |
name: ${{ needs.build.outputs.plugin-id }}-${{ needs.build.outputs.plugin-version }} | |
- name: Execute permissions on binary | |
if: needs.build.outputs.has-backend == 'true' | |
run: | | |
chmod +x ./dist/gpx_* | |
- uses: oven-sh/setup-bun@v2 | |
with: | |
bun-version: latest | |
- name: Install dependencies | |
run: bun install --frozen-lockfile | |
- name: Start Grafana | |
run: | | |
docker compose pull | |
ANONYMOUS_AUTH_ENABLED=false DEVELOPMENT=false GRAFANA_VERSION=${{ matrix.GRAFANA_IMAGE.VERSION }} GRAFANA_IMAGE=${{ matrix.GRAFANA_IMAGE.NAME }} docker compose up -d | |
- name: Wait for grafana server | |
uses: grafana/plugin-actions/wait-for-grafana@main # zizmor: ignore[unpinned-uses] provided by grafana | |
with: | |
url: http://localhost:3000/login | |
- name: Install Playwright Browsers | |
run: yarn exec playwright install chromium --with-deps | |
- name: Run Playwright tests | |
id: run-tests | |
run: bun run e2e | |
- name: Upload e2e test summary | |
uses: grafana/plugin-actions/playwright-gh-pages/upload-report-artifacts@main # zizmor: ignore[unpinned-uses] provided by grafana | |
if: ${{ always() && !cancelled() }} | |
with: | |
upload-report: false | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
test-outcome: ${{ steps.run-tests.outcome }} | |
- name: Docker logs | |
if: ${{ always() && steps.run-tests.outcome == 'failure' }} | |
run: | | |
docker logs gresearch-grafanaincrementaltraceviewer-app >& grafana-server.log | |
- name: Stop grafana docker | |
run: docker compose down | |
# Uncomment this step to upload the server log to Github artifacts. Remember Github artifacts are public on the Internet if the repository is public. | |
# - name: Upload server log | |
# uses: actions/upload-artifact@v4 | |
# if: ${{ always() && steps.run-tests.outcome == 'failure' }} | |
# with: | |
# name: ${{ matrix.GRAFANA_IMAGE.NAME }}-v${{ matrix.GRAFANA_IMAGE.VERSION }}-${{github.run_id}}-server-log | |
# path: grafana-server.log | |
# retention-days: 5 | |
publish-report: | |
if: false # ${{ always() && !cancelled() }} | |
permissions: | |
contents: write | |
id-token: write | |
pull-requests: write | |
needs: [playwright-tests] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# required for playwright-gh-pages | |
persist-credentials: true | |
- name: Publish report | |
uses: grafana/plugin-actions/playwright-gh-pages/deploy-report-pages@main # zizmor: ignore[unpinned-uses] provided by grafana | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} |