Skip to content
CI/CD Inventory

usegalaxy-eu/grafana-dashboards (opens in new tab)

1 workflow

Export UseGalaxy.eu Grafana dashboards

.github/workflows/export.yml (opens in new tab)
Export UseGalaxy.eu Grafana dashboards status

Triggers

workflow_dispatch schedule

Jobs

Jobs for Export UseGalaxy.eu Grafana dashboards
Job Runs on Steps Actions used
export-dashboards ubuntu-22.04 5
actions/checkout@v4 ./.github/actions/action-grafana-dashboards-export
Raw YAML
name: Export UseGalaxy.eu Grafana dashboards

"on":
  workflow_dispatch:
  schedule:
    - cron: "0 0 * * *"

jobs:
  export-dashboards:
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Clear existing dashboards
        run: rm *.json

      - name: Retrieve dashboards from stats.galaxyproject.eu
        uses: ./.github/actions/action-grafana-dashboards-export
        with:
          grafana_url: https://stats.galaxyproject.eu

      - name: Update dashboards table in README.md
        # README.md contains a table of dashboards between two HTML comments
        # `<!---dashboards-->`. This workflow step updates the contents of the
        # table. It uses `jq` to read the downloaded dashboards and `awk` to
        # update the contents of the table.
        run: |
          file="README.md"
          rows=$(jq -r '[.dashboard.title, (.dashboard.tags | join(",")), .dashboard.version, "[Live](https://stats.galaxyproject.eu/d/" + .dashboard.uid + ")", "[File](./" + (input_filename | @uri) + ")"] | join(" | ")' *.json)

          gawk -i inplace -v replacement="$rows" '
          BEGIN {
            # Define <!---dashboards--> as record separator. By default, awk
            # reads each line of input as a separate record. Changing the
            # record separator allows operating on that specific section of the
            # file, even if it spawns multiple lines.
            RS="<!---dashboards-->";
            # do not append anything between records when writing output (set
            # record separator to an empty string)
            ORS="";  # do not print anything after a re
            section_number=0;
          }
          
          {
            section_number++;
            if (section_number == 2) {
              # section allocated to the table
              print RS "\n"
              print "Name | Tags | Version | Live | JSON" "\n"
              print "---- | ---- | ------- | ---- | ----" "\n"
              print replacement "\n"
              print RS
            } else {
              # other sections
              print $0
            }
          }
          ' "$file"

      - name: Commit changes
        run: |
          set -e
          git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
          git config --global user.name "github-actions[bot]"
          git add -A
          git commit -m "Export dashboards from stats.galaxyproject.eu" || echo "Dashboards are up to date"
          git push

Last fetched: