# SPDX-FileCopyrightText: 2024 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later

name: yuzu-android-publish

on:
  schedule:
    - cron: '37 0 * * *'
  workflow_dispatch:
    inputs:
      android:
        description: 'Whether to trigger an Android build (true/false/auto)'
        required: false
        default: 'true'

jobs:
  android:
    runs-on: ubuntu-latest
    if: ${{ github.event.inputs.android != 'false' && github.repository == 'yuzu-emu/yuzu' }}
    steps:
      # this checkout is required to make sure the GitHub Actions scripts are available
      - uses: actions/checkout@v3
        name: Pre-checkout
        with:
          submodules: false
      - uses: actions/github-script@v6
        id: check-changes
        name: 'Check for new changes'
        env:
          # 24 hours
          DETECTION_TIME_FRAME: 86400000
        with:
          script: |
            if (context.payload.inputs && context.payload.inputs.android === 'true') return true;
            const checkAndroidChanges = require('./.github/workflows/android-merge.js').checkAndroidChanges;
            return checkAndroidChanges(github);
      - run: npm install execa@5
        if: ${{ steps.check-changes.outputs.result == 'true' }}
      - uses: actions/checkout@v3
        name: Checkout
        if: ${{ steps.check-changes.outputs.result == 'true' }}
        with:
          path: 'yuzu-merge'
          fetch-depth: 0
          submodules: true
          token: ${{ secrets.ALT_GITHUB_TOKEN }}
      - uses: actions/github-script@v5
        name: 'Check and merge Android changes'
        if: ${{ steps.check-changes.outputs.result == 'true' }}
        env:
          ALT_GITHUB_TOKEN: ${{ secrets.ALT_GITHUB_TOKEN }}
        with:
          script: |
            const execa = require("execa");
            const mergebot = require('./.github/workflows/android-merge.js').mergebot;
            process.chdir('${{ github.workspace }}/yuzu-merge');
            mergebot(github, context, execa);
