name: NTSC-Status

on:
  push:
    branches: master # Only trigger on master
    paths-ignore: # Don't trigger on files that are updated by the CI or other non-breaking files
    - 'tools/**'
    - '*.md'
    - '.github/**'
    - '.gitignore'
    - 'CppProperties.json'
    
  pull_request:
    branches: master # Only trigger on master
    
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  changedfiles:
    runs-on: ubuntu-latest
    # Map a step output to a job output
    outputs:
      all: ${{ steps.changes.outputs.all}}
    steps:
        # Make sure we have some code to diff.
      - name: Checkout repository
        uses: actions/checkout@v2
      - name: Get changed files
        id: changes
        # Set outputs using the command.
        run: |
          echo "::set-output name=all::$(git diff --name-only --diff-filter=ACMRT ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | xargs)"
   
  buildus:
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
     # - name: Bypass Cloudflare for GitHub Action
     #   uses: xiaotianxt/bypass-cloudflare-for-github-action@v1.1.1
     #   with:
     #     cf_zone_id: ${{ secrets.CF_ZONE_ID }}
     #     cf_api_token: ${{ secrets.CF_API_TOKEN }}
     # - uses: actions/checkout@v2
      #  with:
      #    fetch-depth: 2
      - name: Install Depedencies
        run: |
          sudo apt update
          sudo apt install binutils-mips-linux-gnu make
          wget https://github.com/n64decomp/qemu-irix/releases/download/v2.11-deb/qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb
          sudo dpkg -i qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb

      - name: Get precompiled recomp to save time
        env:
          IDO_RECOMP: ${{ secrets.FILE_RECOMP  }}
        run: |
          wget -O recomp.zip $IDO_RECOMP
          unzip -u recomp.zip -d tools/ido5.3_recomp

      - name: Get US File
        env:
          FILE_US: ${{ secrets.SECRET_FILE_US  }}
        run: wget -O baserom.u.z64 $FILE_US

      # cach is only usefull if downloading things takes longer than copying things - in this case, extraction is quicker
      #- name: Cache Assets
      #  id: cache-assets
      #  uses: actions/cache@v3
      #  with:
      #    path: assets
      #    key: ${{ hashFiles('extract_baserom.u.sh') }}

      - name: Extract US Assets
        #if: steps.cache-assets.outputs.cache-hit != 'true'
        run: ./scripts/extract_baserom.u.sh
      
      - name: Make US 
        run: make all -j IDO_RECOMP=YES VERSION=US VERBOSE=1
          
      - name: Make report
        run: make -C tools/report

      # for refrence, these diff commands wont work in GHA, so, "Last modified file" will never work
      # GHA makes new copies of all files (so modified date is all the same) and wont lok at logs (commands below)
      #- name: difftest1
      #  run: git diff --name-only origin/master ${GITHUB_HEAD_REF}

      #- name: difftest2    
      #  run: git diff --name-only ${{ github.event.before }} ${{ github.sha }} 

      #- name: difftest3
      #  run: git diff --name-only -1

      #- name: difftest4
      #  run: git diff --name-only @"{10 minutes ago}"

      - name: Stats
        run: python3 tools/ge-stats.py --version us --report           
        # expected args
        # 1481 15854 12774 232276 564 1312 652 20330 15471 269772 49 336 tools/report/index.html "src/game/bondview.c"
      
      # Replace this with Git push to repo
      # but somehow avoid loop
      
      #- uses: actions/download-artifact@v2
      #  with:
      #    name: my-artifact
      #    path: tools/report/index.html
      #- name: Upload output files

       # uses: AXDOOMER/copy_file_to_another_repo_action@e54ae5087212906dac7ef96dee19e31190913257

        #env:
        #  API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}
        #  API_TOKEN_USER: ${{ secrets.API_TOKEN_USER }}
        #  API_TOKEN_EMAIL: ${{ secrets.API_TOKEN_EMAIL }}

       # with:
       #   destination_repo: 'kholdfuzion/goldeneyestatus'
       #   user_email: $API_TOKEN_EMAIL
       #   user_name: $API_TOKEN_USER
       #   source_file: |
       #     tools/report/cursor.cur
       #     tools/report/index.html
       #     tools/report/sfx.ogg
       #     tools/report/background.jpg
      
#need way of telling report that JAP passed/failed
