透過 GitHub Actions 按計畫更新網站內容

PHPz
發布: 2024-08-17 15:20:01
原創
521 人瀏覽過

我想分享我建立一個自我永續的內容管理系統的旅程,該系統不需要傳統意義上的內容資料庫。

問題

本網站的內容(部落格文章和書籤)儲存在 Notion 資料庫中:

Updating website content on schedule via GitHub Actions

帶書籤的資料庫 –  Notion UI

我試圖解決的問題是不必在添加每個書籤後手動部署網站。最重要的是 - 保持託管盡可能便宜,因為對我來說,添加到我的 Notion 資料庫中的書籤最終上線的速度有多快並不重要。

所以,經過一些研究,我想出了以下設定:

Updating website content on schedule via GitHub Actions

內容傳遞機制的高階概述

該系統由幾個組件組成:

  • 部署更改的「推送到主」操作
  • 「更新內容」操作,從 Notion API 下載內容並提交更改
  • 「按計畫更新內容」操作偶爾運行一次並觸發「更新內容」操作

讓我們從內到外詳細研究它們中的每一個。

「推送到主」工作流程

這裡沒什麼好說的,相當標準的設置, – 當推送到主分支時,此工作流程會建立應用程式並使用 Wrangler CLI 將其部署到 Cloudflare Pages:

雷雷

「更新內容」工作流程

此工作流程只能「手動」觸發…但也可以自動觸發,因為您可以使用 GitHub 個人存取權杖(又稱 PAT)觸發它。我最初編寫它是因為我想從我的手機部署更改。它使用 Notion API 下載帖子和書籤,然後 - 如果程式碼庫有任何更改 - 建立提交並推送它。為了正常運行,此工作流程必須提供具有儲存庫「讀取和寫入程式碼存取權限」的 PAT:

雷雷

「按計畫更新內容」工作流程

這個非常簡單:它只是每隔一段時間運行一次並觸發上面的工作流程。為了正常運行,此工作流程必須提供一個 GitHub PAT,該 PAT 具有儲存庫的「actions讀寫存取權限」。就我而言,這是一個不同的 PAT:

雷雷

結論

對我來說,這個設定已被證明非常好且靈活。由於模組化結構,“更新內容”操作可以手動觸發 - 例如旅行時從我的手機上。對我來說,這是另一個逐步增強工作流程的寶貴經驗。

希望您覺得這有幫助?

以上是透過 GitHub Actions 按計畫更新網站內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!