name: Sync to GitHub Pages on: workflow_dispatch: push: branches: - main paths: - 'mt5/MQL5/**' - 'docs/**' - 'README.md' - '.github/workflows/github-pages-sync.yml' permissions: contents: write concurrency: group: github-pages-sync-main cancel-in-progress: false jobs: sync-to-pages: runs-on: ubuntu-latest env: PAGES_REPO: Mouy-leng/-LengKundee-mql5.github.io.git PAGES_BRANCH: main steps: - name: Checkout main repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Check GitHub Pages sync configuration env: PAGES_SYNC_TOKEN: ${{ secrets.PAGES_SYNC_TOKEN }} run: | if [[ -z "${PAGES_SYNC_TOKEN:-}" ]]; then echo "PAGES_SYNC_ENABLED=false" >> "$GITHUB_ENV" echo "⚠️ Skipping GitHub Pages sync: PAGES_SYNC_TOKEN not configured." echo "To enable sync, add a Personal Access Token as PAGES_SYNC_TOKEN secret with repo permissions." exit 0 fi echo "PAGES_SYNC_ENABLED=true" >> "$GITHUB_ENV" - name: Setup Git if: env.PAGES_SYNC_ENABLED == 'true' run: | git config --global user.name "github-actions[bot]" git config --global user.email "github-actions[bot]@users.noreply.github.com" - name: Clone GitHub Pages repository if: env.PAGES_SYNC_ENABLED == 'true' env: PAGES_SYNC_TOKEN: ${{ secrets.PAGES_SYNC_TOKEN }} run: | git clone https://${PAGES_SYNC_TOKEN}@github.com/${PAGES_REPO} pages-repo cd pages-repo git checkout ${PAGES_BRANCH} || git checkout -b ${PAGES_BRANCH} - name: Sync MQL5 files to GitHub Pages if: env.PAGES_SYNC_ENABLED == 'true' run: | # Copy MQL5 files mkdir -p pages-repo/mql5 cp -r mt5/MQL5/* pages-repo/mql5/ || true # Copy documentation mkdir -p pages-repo/docs cp -r docs/* pages-repo/docs/ || true # Copy README if it exists cp README.md pages-repo/ || true - name: Commit and push to GitHub Pages if: env.PAGES_SYNC_ENABLED == 'true' env: PAGES_SYNC_TOKEN: ${{ secrets.PAGES_SYNC_TOKEN }} run: | cd pages-repo git add -A git diff --staged --quiet || { git commit -m "Auto-sync from MQL5-Google-Onedrive: $(date +'%Y-%m-%d %H:%M:%S')" git push https://${PAGES_SYNC_TOKEN}@github.com/${PAGES_REPO} ${PAGES_BRANCH} } - name: Summary if: env.PAGES_SYNC_ENABLED == 'true' run: | echo "✅ Successfully synced to GitHub Pages repository" echo "Repository: https://github.com/${PAGES_REPO}" echo "Branch: ${PAGES_BRANCH}"