name: Nightly overhead benchmark
on:
  schedule:
    # 5am GMT
    - cron: '0 5 * * *'
  workflow_dispatch:

jobs:
  run-overhead-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/checkout@v3
        with:
          ref: gh-pages
          path: gh-pages
      - name: copy results from gh-pages branch
        run: |
          rsync -avv gh-pages/benchmark-overhead/results/ benchmark-overhead/results/
      - name: run tests
        uses: gradle/gradle-build-action@v2
        with:
          arguments: test
          build-root-directory: benchmark-overhead
      - 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@v8
        with:
          add: 'benchmark-overhead/results'
          cwd: './gh-pages'
          branch: 'gh-pages'
          message: 'update test result data'
          author_name: opentelemetry-java-bot
          author_email: 97938252+opentelemetry-java-bot@users.noreply.github.com
          committer_name: opentelemetry-java-bot
          committer_email: 97938252+opentelemetry-java-bot@users.noreply.github.com

  issue:
    name: Open issue on failure
    needs: run-overhead-tests
    runs-on: ubuntu-latest
    if: always()
    steps:
      # run this action to get workflow conclusion
      # You can get conclusion by env (env.WORKFLOW_CONCLUSION)
      - uses: technote-space/workflow-conclusion-action@v2.2

      - uses: actions/checkout@v3

      - uses: JasonEtco/create-an-issue@v2.6
        if: env.WORKFLOW_CONCLUSION == 'failure' # notify only if failure
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          filename: .github/templates/workflow-failed.md
