Updateing notes #37
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 & Build | |
| on: | |
| push: | |
| branches: | |
| - Admin | |
| paths: | |
| - "pages/**" # runs when notes in pages/ change | |
| workflow_dispatch: # allows manual trigger from GitHub Actions UI | |
| jobs: | |
| sync-and-build: | |
| 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 sync | |
| before=$(find "$DEST" -name "*.md" ! -name "index.md" | wc -l) | |
| # Delete stale notes (keeps index.md intact) | |
| find "$DEST" -name "*.md" ! -name "index.md" -delete | |
| # Copy notes from Admin branch to Web-live branch | |
| cp -r "$SOURCE"/. "$DEST"/ | |
| # Count files after sync | |
| 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 in content/ | |
| id: changes | |
| run: | | |
| cd quartz-site | |
| git add content/ | |
| if git diff --staged --quiet; then | |
| echo "has_changes=false" >> $GITHUB_OUTPUT | |
| echo "No changes detected — skipping deploy." | |
| else | |
| changed=$(git status --porcelain content/ | wc -l) | |
| echo "has_changes=true" >> $GITHUB_OUTPUT | |
| echo "changed_count=$changed" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Commit and push source files 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" | |
| COMMIT_SHA=$(cd ../logseq-source && git rev-parse --short HEAD) | |
| git add content/ | |
| git commit -m "sync: content 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 "- Changes pushed to **Web-live**. Vercel will build and deploy 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 |