# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: PDF
on:
  push:
    branches:
      - "master"
    paths-ignore:
      - "cmds/**"
      - "**.md"
  pull_request:
    branches:
      - "master"
    paths-ignore:
      - "cmds/**"
      - "**.md"
  workflow_dispatch:
jobs:
  pdf-test:
    runs-on: pdf
    timeout-minutes: 40
    strategy:
      fail-fast: true

    steps:
    - name: config-net
      run: |
        export http_proxy=http://bigdata_open_proxy:H89k5qwQRDYfz@10.140.90.20:10811
        export https_proxy=http://bigdata_open_proxy:H89k5qwQRDYfz@10.140.90.20:10811
    - name: PDF benchmark
      uses: actions/checkout@v3
      with:
        fetch-depth: 2
    - name: check-requirements
      run: |
        changed_files=$(git diff --name-only -r HEAD~1 HEAD)
        echo $changed_files
        if [[ $changed_files =~ "requirements.txt" ]]; then
          pip install -r requirements.txt
        fi

    - name: config-net-reset
      run: |
        export http_proxy=""
        export https_proxy=""
    - name: get-benchmark-result
      run: |
        echo "start test"
        cd tools && python text_badcase.py pdf_json_label_0306.json pdf_json_label_0229.json json_files.zip text_badcase text_overall base_data_text.json --s3_bucket_name llm-process-pperf --s3_file_directory qa-validate/pdf-datasets/badcase --AWS_ACCESS_KEY 7X9CWNHIVOHH3LXRD5WK  --AWS_SECRET_KEY IHLyTsv7h4ArzReLWUGZNKvwqB7CMrRi6e7ZyUt0 --END_POINT_URL http://p-ceph-norm-inside.pjlab.org.cn:80
        python ocr_badcase.py pdf_json_label_0306.json ocr_dataset.json json_files.zip ocr_badcase ocr_overall base_data_ocr.json --s3_bucket_name llm-process-pperf --s3_file_directory qa-validate/pdf-datasets/badcase --AWS_ACCESS_KEY 7X9CWNHIVOHH3LXRD5WK  --AWS_SECRET_KEY IHLyTsv7h4ArzReLWUGZNKvwqB7CMrRi6e7ZyUt0 --END_POINT_URL http://p-ceph-norm-inside.pjlab.org.cn:80
  
  notify_to_feishu:
    if: ${{ always() && !cancelled() && contains(needs.*.result, 'failure') && (github.ref_name == 'master') }}
    needs: [pdf-test]
    runs-on: pdf
    steps:
    - name: notify
      run: |
        curl  ${{ secrets.WEBHOOK_URL }} -H 'Content-Type: application/json'  -d '{
        "msgtype": "text",
        "text": {
            "content": "'${{ github.repository }}' GitHubAction Failed!\n 细节请查看：https://github.com/'${{ github.repository }}'/actions/runs/'${GITHUB_RUN_ID}'"
        } 
        }'                                                                                                                            
