name: Auto update documentation/backend test data
on:
  pull_request_target:
  workflow_dispatch:

permissions:  # set top-level default permissions as security best practice
  contents: read # Check https://github.com/ossf/scorecard/blob/7ce8609469289d5f3b1bf5ee3122f42b4e3054fb/docs/checks.md#token-permissions

concurrency:
    group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name == 'workflow_dispatch' }}
    cancel-in-progress: true

jobs:
  auto-update-doc:
    if: contains( github.event.pull_request.labels.*.name, 'auto update doc')
    runs-on: ubuntu-latest
    permissions:
        contents: write

    steps:
    - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
      with:
        repository: ${{ github.event.pull_request.head.repo.full_name }}
        # Checkout the branch made in the fork. Will automatically push changes
        # back to this branch.
        ref: ${{ github.head_ref }}
    - name: Setup Python
      uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
      with:
        python-version: "3.11"
    - name: Install ONNX from source and update documentation
      run: |
        python -m pip install -q --upgrade pip
        python -m pip install -r requirements-release.txt
        git submodule update --init --recursive
        export ONNX_ML=1
        pip install -e .

        python onnx/defs/gen_doc.py
        python onnx/gen_proto.py -l
        python onnx/gen_proto.py -l --ml
        python onnx/backend/test/stat_coverage.py

        python onnx/backend/test/cmd_tools.py generate-data --diff

        git diff -- . ':(exclude)onnx/onnx-data.proto' ':(exclude)onnx/onnx-data.proto3'


    - name: Commit changes with updated files
      uses: stefanzweifel/git-auto-commit-action@8621497c8c39c72f3e2a999a26b4ca1b5058a842 # v5.0.1
      with:
        commit_message: CI:apply auto updated documentation/backend test data
        commit_options: "--signoff"
