# Copyright (C) 2026 Moko Consulting # # SPDX-License-Identifier: GPL-3.0-or-later # # FILE INFORMATION # DEFGROUP: Gitea.Workflow # INGROUP: mokocli.Universal # REPO: https://git.mokoconsulting.tech/MokoConsulting/mokocli # PATH: /.mokogitea/workflows/workflow-sync-trigger.yml # VERSION: 01.01.00 # BRIEF: Trigger workflow sync to live repos when a PR is merged to main name: "Universal: Workflow Sync Trigger" on: workflow_dispatch: pull_request: types: [closed] branches: - main env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: sync: name: Sync workflows to live repos runs-on: ubuntu-latest if: >- github.event_name == 'workflow_dispatch' || (github.event.pull_request.merged == true && !contains(github.event.pull_request.title, '[skip sync]')) steps: - name: Determine platform from repo name id: platform run: | REPO="${{ github.event.repository.name }}" case "$REPO" in Template-Joomla) PLATFORM="joomla" ;; Template-Dolibarr) PLATFORM="dolibarr" ;; Template-Go) PLATFORM="go" ;; Template-MCP) PLATFORM="mcp" ;; Template-Generic) PLATFORM="" ;; *) PLATFORM="" ;; esac echo "platform=$PLATFORM" >> "$GITHUB_OUTPUT" echo "Platform: ${PLATFORM:-all}" - name: Clone mokocli env: MOKOGITEA_TOKEN: ${{ secrets.MOKOGITEA_TOKEN }} run: | MOKOGITEA_URL="${{ vars.GITEA_URL || 'https://git.mokoconsulting.tech' }}" git clone --depth 1 "${MOKOGITEA_URL}/MokoConsulting/mokocli.git" /tmp/mokocli - name: Install PHP run: | if ! command -v php &> /dev/null; then apt-get update -qq && apt-get install -y -qq php-cli php-json php-curl > /dev/null 2>&1 fi - name: Install dependencies run: | cd /tmp/mokocli composer install --no-dev --no-interaction --quiet 2>/dev/null || true - name: Run workflow sync env: MOKOGITEA_TOKEN: ${{ secrets.MOKOGITEA_TOKEN }} run: | ARGS="--token ${MOKOGITEA_TOKEN}" ARGS="${ARGS} --org ${{ vars.GITEA_ORG || github.repository_owner }}" ARGS="${ARGS} --phase repos" PLATFORM="${{ steps.platform.outputs.platform }}" if [ -n "$PLATFORM" ]; then ARGS="${ARGS} --platform-filter ${PLATFORM}" fi php /tmp/mokocli/cli/workflow_sync.php ${ARGS}