name: Overhead benchmark (daily)
on:
  schedule:
    # daily at 5:00 UTC
    - cron: "0 5 * * *"
  workflow_dispatch:

jobs:
  run-overhead-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4

      - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
        with:
          ref: gh-pages
          path: gh-pages

      - name: Free disk space
        run: .github/scripts/gha-free-disk-space.sh

      - name: Copy results from gh-pages branch
        run: |
          rsync -avv gh-pages/benchmark-overhead/results/ benchmark-overhead/results/

      - name: Setup Gradle
        uses: gradle/actions/setup-gradle@db19848a5fa7950289d3668fb053140cf3028d43 # v3.3.2

      - name: Run tests
        working-directory: benchmark-overhead
        run: ./gradlew test

      - name: Inspect the results dir
        working-directory: benchmark-overhead
        run: ls -lR results

      - name: Copy results back to gh-pages branch
        run: rsync -avv benchmark-overhead/results/ gh-pages/benchmark-overhead/results/ && rm -rf benchmark-overhead/results

      - name: Commit updated results
        uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9.1.4
        with:
          add: "benchmark-overhead/results"
          cwd: "./gh-pages"
          branch: "gh-pages"
          message: "update test result data"
          author_name: opentelemetrybot
          author_email: 107717825+opentelemetrybot@users.noreply.github.com
          committer_name: opentelemetrybot
          committer_email: 107717825+opentelemetrybot@users.noreply.github.com

  workflow-notification:
    needs:
      - run-overhead-tests
    if: always()
    uses: ./.github/workflows/reusable-workflow-notification.yml
    with:
      success: ${{ needs.run-overhead-tests.result == 'success' }}
