name: dependency-updates

on:
  workflow_dispatch:
  schedule:
  - cron:  '00 12 * * *'

jobs:
  dependency_updates:
    name: Run dependency update script
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v4
    - uses: shivammathur/setup-php@v2
      with:
        php-version: 8.3
        extensions: apcu
    - name: Run dependency update script
      run: |
        set -x
        cd ./php
        composer update --with-all-dependencies
        # Disable dependency updates for now
        # set +e
        # ALL_LINES="$(composer outdated | grep -v "^$\|Direct dependencies\|Everything up to date\|Transitive dependencies")"
        # set -e
        # while [ -n "$ALL_LINES" ]; do
        #   CURRENT_LINE="$(echo "$ALL_LINES" | head -1)"
        #   composer require "$(echo "$CURRENT_LINE" | awk '{print $1}')" "^$(echo "$CURRENT_LINE" | awk '{print $4}')" --with-all-dependencies
        #   ALL_LINES="$(echo "$ALL_LINES" | sed '1d')"
        # done
        # echo "outdated dependencies:
        # $(composer outdated)"
    - name: Update apcu
      run: |
        # APCU
        apcu_version="$(
          git ls-remote --tags https://github.com/krakjoe/apcu.git \
            | cut -d/ -f3 \
            | grep -viE -- 'rc|b' \
            | sed -E 's/^v//' \
            | sort -V \
            | tail -1
        )"
        sed -i "s|pecl install APCu.*\;|pecl install APCu-$apcu_version\;|" ./Containers/mastercontainer/Dockerfile
    - name: Create Pull Request
      uses: peter-evans/create-pull-request@v6
      with:
        commit-message: php dependency updates
        signoff: true
        title: PHP dependency updates
        body: Automated php dependency updates since dependabot does not support grouped updates
        labels: dependencies, 3. to review
        milestone: next
        branch: aio-dependency-update
