name: Kernel Watch

on:
  workflow_dispatch:
  schedule:
    - cron: '0 12 * * *' # Every day

jobs:
  check:
    name: Check for new Release
    runs-on: [ubuntu-latest]
    strategy:
      matrix:
        branch: []
    steps:
    - name: Checkout Sources
      uses: actions/checkout@v3
      with:
        ref: ${{ matrix.branch }}
        submodules: recursive
    - name: Setup System Dependencies
      run: sudo apt install jq curl
    - name: Check for Release
      id: check
      run: |
        NEW=$(scripts/check.sh ${{ matrix.branch }})
        if [[ -z $NEW ]]; then
            echo "No new release found"
            exit 0
        fi
        echo "Found new Linux kernel version $NEW"
        STAGING=$(git ls-remote --heads origin "staging/v$NEW*")
        if [[ $STAGING ]]; then
            echo "Existing staging update found"
            exit 0
        fi
        echo "No staging update found: triggering update"
        echo "version=$NEW" >> $GITHUB_OUTPUT
    - name: Trigger Update
      if: ${{ steps.check.outputs.version }}
      uses: benc-uk/workflow-dispatch@v1
      with:
        workflow: Kernel Update
        token: ${{ secrets.PAT }} # Custom token needed to recursively trigger workflows
        inputs: '{ "tag": "v${{ steps.check.outputs.version }}" }'
        ref: ${{ matrix.branch }}

