---
# Create a PR to update the react dashboard code.
name: Dashboard Version PR

on:
  workflow_dispatch:
    inputs:
      dashboard_version:
        # This must be specified, and must _exactly_ match the version
        # tag for the release to be used for the update.
        description: Dashboard Version
        required: true

env:
  DISABLE_TELEMETRY: 1

jobs:
  dashboard-pr:
    name: Generate Dashboard Version Bump PR
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        id: checkout
        uses: actions/checkout@v3
      - name: Update Files
        id: update
        run: |
          web/gui/bundle_dashboard.py ${{ github.event.inputs.dashboard_version }}
      - name: Create Pull Request
        id: pr
        uses: peter-evans/create-pull-request@v5
        with:
          title: 'Update dashboard to version ${{ github.event.inputs.dashboard_version }}.'
          body: 'See https://github.com/netdata/dashboard/releases/tag/${{ github.event.inputs.dashboard_version }} for changes.'
          branch: dashboard-${{ github.event.inputs.dashboard_version }}
          branch-suffix: timestamp
          delete-branch: true
          commit-message: 'Update dashboard to version ${{ github.event.inputs.dashboard_version }}.'
          token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }}
      - name: Failure Notification
        uses: rtCamp/action-slack-notify@v2
        env:
          SLACK_COLOR: 'danger'
          SLACK_FOOTER: ''
          SLACK_ICON_EMOJI: ':github-actions:'
          SLACK_TITLE: 'Dashboard update PR creation failed:'
          SLACK_USERNAME: 'GitHub Actions'
          SLACK_MESSAGE: |-
              ${{ github.repository }}: Failed to create PR to update dashboard code to newest release.
              Checkout: ${{ steps.checkout.outcome }}
              Update files: ${{ steps.update.outcome }}
              Create PR: ${{ steps.pr.outcome }}
          SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
        if: failure()
