Added Enhancement Adobe XD (Testing CI work flow) #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Sync Logseq → Quartz Content | |
| on: | |
| push: | |
| branches: | |
| - Admin | |
| paths: | |
| - "pages/**" # only runs when .md files in pages/ actually change | |
| workflow_dispatch: # allows manual trigger from GitHub Actions UI | |
| jobs: | |
| sync: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout Admin branch (Logseq source) | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: Admin | |
| path: logseq-source | |
| - name: Checkout Web-live branch (Quartz site) | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: Web-live | |
| path: quartz-site | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Sync pages/ → content/ | |
| id: sync | |
| run: | | |
| SOURCE="logseq-source/pages" | |
| DEST="quartz-site/content" | |
| # Count files before | |
| before=$(find "$DEST" -name "*.md" ! -name "index.md" | wc -l) | |
| # Remove stale .md files (deleted from Logseq) but keep index.md | |
| find "$DEST" -name "*.md" ! -name "index.md" -delete | |
| # Copy all .md files from Logseq pages/ | |
| cp -r "$SOURCE"/. "$DEST"/ | |
| # Restore index.md if it was overwritten (Quartz needs its own index) | |
| cd quartz-site | |
| git checkout HEAD -- content/index.md 2>/dev/null || true | |
| # Count files after | |
| after=$(find "../$DEST" -name "*.md" ! -name "index.md" | wc -l) | |
| echo "files_before=$before" >> $GITHUB_OUTPUT | |
| echo "files_after=$after" >> $GITHUB_OUTPUT | |
| - name: Check for changes | |
| id: changes | |
| run: | | |
| cd quartz-site | |
| git add content/ | |
| if git diff --staged --quiet; then | |
| echo "has_changes=false" >> $GITHUB_OUTPUT | |
| echo "No content changes detected — skipping commit." | |
| else | |
| changed=$(git diff --staged --name-only | wc -l) | |
| echo "has_changes=true" >> $GITHUB_OUTPUT | |
| echo "changed_count=$changed" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Commit and push to Web-live | |
| if: steps.changes.outputs.has_changes == 'true' | |
| run: | | |
| cd quartz-site | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| CHANGED=${{ steps.changes.outputs.changed_count }} | |
| COMMIT_SHA=$(cd ../logseq-source && git rev-parse --short HEAD) | |
| git commit -m "sync: $CHANGED file(s) updated from Logseq (Admin@$COMMIT_SHA)" | |
| git push origin Web-live | |
| - name: Summary | |
| run: | | |
| if [ "${{ steps.changes.outputs.has_changes }}" == "true" ]; then | |
| echo "### ✅ Sync complete" >> $GITHUB_STEP_SUMMARY | |
| echo "- **Files before:** ${{ steps.sync.outputs.files_before }}" >> $GITHUB_STEP_SUMMARY | |
| echo "- **Files after:** ${{ steps.sync.outputs.files_after }}" >> $GITHUB_STEP_SUMMARY | |
| echo "- **Changed:** ${{ steps.changes.outputs.changed_count }} file(s)" >> $GITHUB_STEP_SUMMARY | |
| echo "- Vercel will now redeploy automatically." >> $GITHUB_STEP_SUMMARY | |
| else | |
| echo "### ⏭️ No changes" >> $GITHUB_STEP_SUMMARY | |
| echo "Content was already up to date — no commit made." >> $GITHUB_STEP_SUMMARY | |
| fi |