# name: Tasks Modified

# on:
#   push:
#     branches:
#       - 'big-refactor*'
#   pull_request:
#     branches:
#       - 'big-refactor*'
#   workflow_dispatch:
# # comment/edit out the above to stop/change the triggers
# jobs:
#   changed_files:
#     runs-on: ubuntu-latest  # windows-latest || macos-latest
#     timeout-minutes: 120
#     name: Scan for changed tasks
#     steps:
#       - name: checkout
#         uses: actions/checkout@v3
#         with:
#           fetch-depth: 2  # OR "2" -> To retrieve the preceding commit.

#       # Uses the tj-actions/changed-files@v37 action to check for changes.
#       # Outputs provided here: https://github.com/tj-actions/changed-files#outputs
#       # The `files_yaml` input optionally takes a yaml string to specify filters,
#       # and prepends the filter name to the standard output names.
#       - name: Check task folders
#         id: changed-tasks
#         uses: tj-actions/changed-files@v37.1.2
#         with:
#           # tasks checks the tasks folder and api checks the api folder for changes
#           files_yaml: |
#             tasks:
#               - lm_eval/tasks/**
#             api:
#               - lm_eval/api/**
#           write_output_files: true

#     # The next step is optional; the files are written to the workspace by default (above).
#     # so it's just for debugging
#       - name: Run Tests
#         if: steps.changed-tasks.outputs.tasks_any_modified == 'true' || steps.changed-tasks.outputs.api_any_modified == 'true'
#         run: |
#           echo .github/outputs/tasks_all_changed_and_modified_files.txt >> 'GITHUB_ENV'
#           echo "One or more test file(s) has changed."
#           echo "List of all the files that have changed: ${{ steps.changed-tasks.outputs.tasks_all_modified_files }}"

#       - name: Set up Python 3.9
#         if: steps.changed-tasks.outputs.tasks_any_modified == 'true' || steps.changed-tasks.outputs.api_any_modified == 'true'
#         uses: actions/setup-python@v4
#         with:
#           python-version: 3.9
#           cache: 'pip'
#           cache-dependency-path: setup.py
#       - name: Install dependencies
#         if: steps.changed-tasks.outputs.tasks_any_modified == 'true' || steps.changed-tasks.outputs.api_any_modified == 'true'
#         run: |
#             python -m pip install --upgrade pip
#             pip install -e '.[testing]' --extra-index-url https://download.pytorch.org/whl/cpu
#     #   Install optional git dependencies
#     #       pip install bleurt@https://github.com/google-research/bleurt/archive/b610120347ef22b494b6d69b4316e303f5932516.zip#egg=bleurt
#     #       if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
#       - name: Test with pytest
#         # if new tasks are added, run tests on them
#         if: steps.changed-tasks.outputs.tasks_any_modified == 'true'
#         run: python -m pytest tests/test_tasks.py -s -vv
#         # if api is modified, run tests on it
#       - name: Test more tasks with pytest
#         env:
#           API: true
#         if: steps.changed-tasks.outputs.api_any_modified == 'true'
#         run: python -m pytest tests/test_tasks.py -s -vv
