---
# Send PRs to the subscribed ECS Agents if the spec files (JSON) are modified
name: update-specs

on:
  workflow_dispatch:
  schedule:
    - cron: '0 6 * * *'

permissions:
  contents: read

jobs:
  compose:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: read
    steps:
      - uses: actions/checkout@v6

      - name: Get token
        id: get_token
        uses: actions/create-github-app-token@v2
        with:
          app-id: ${{ secrets.OBS_AUTOMATION_APP_ID }}
          private-key: ${{ secrets.OBS_AUTOMATION_APP_PEM }}
          permission-contents: write
          permission-pull-requests: write

      - uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - uses: elastic/oblt-actions/updatecli/run@v1
        with:
          command: --experimental compose diff
        env:
          GITHUB_TOKEN: ${{ steps.get_token.outputs.token }}

      - uses: elastic/oblt-actions/updatecli/run@v1
        with:
          command: --experimental compose apply
        env:
          GITHUB_TOKEN: ${{ steps.get_token.outputs.token }}

      - if: failure()
        uses: elastic/oblt-actions/slack/send@v1
        with:
          bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
          channel-id: "#apm-agent-python"
          message: ":traffic_cone: updatecli failed for `${{ github.repository }}@${{ github.ref_name }}`, @robots-ci please look what's going on <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|here>"
