使用子模組在 Netlify 上觸發部署

我想在每次我在包含在存儲庫中的 Git 子模組上進行提交時,在 Netlify 上重新構建我的網站。 不幸的是,Netlify 不會默認這樣做,只有主要存儲庫被“監視”以進行新的提交。 所以我這樣做了。 我進入部署設置,在“部署提醒”中,我點擊了“添加部署提醒”。 ! 保存後,我得到了一個唯一的 URL,我可以調用,類似於 https://api.netlify.com/build_hooks/UNIQUE_STRING。 然後,在子模組存儲庫中創建了一個 GitHub Action: name: 在 Netlify 上觸發重新部署 on: push: branches: [ "main" ] jobs: build: name: 執行 POST 請求 runs-on: ubuntu-latest steps: - name: Curl 請求 shell: bash env: UNIQUE_STRING: ${{ secrets.NETLIFY_BUILD_HOOK_UNIQUE_STRING }} run: curl -X POST -d {} https://api.netlify.com/build_hooks/$UNIQUE_STRING 將上述的 Netlify UNIQUE_STRING 值添加到存儲庫 “設置 -> 秘密 -> 操作” 中的 NETLIFY_BUILD_HOOK_UNIQUE_STRING 操作秘密。 提交 Action,部署應該已經在運行: !

在Netlify上托管靜態網站的教程

發現Netlify,一個非常適合靜態網站的優秀托管服務,它還有一個很好的免費計劃、免費CDN並且運行非常快速。 我把我的博客托管在Netlify上。 我一段時間前轉移,我的前一個托管服務遇到了一些問題,導致我的網站在幾個小時內無法訪問,所以在等待它恢復上線期間,我尋找了一個快速的方式將其還原,並在Netlify上創建了一個複本。 由於這個博客使用的是Hugo,它是一個靜態網站生成器,所以我不需要太多工作將博客遷移到新的托管服務上。我只需要一個可以提供HTML文件的地方,而這幾乎是地球上的任何一個托管服務都能做到的。 我開始尋找最適合靜態網站的平台,有一些平台在我眼中脫穎而出,但最終我選擇了Netlify,並且很高興我這麼做了。 介紹Netlify 在我嘗試之前,有一些讓我留下了極好印象的事情。 首先,免費計劃非常豐富,無論是免費還是商業項目都可以享有100GB的每月免費帶寬,對於一個只有一些圖片的靜態網站來說,這是一個非常寬敞的空間。 它們提供全球CDN,以確保速度不成問題,即使在遠離中央位置服務器的大陸上也是如此。 你可以將你的DNS nameserver 指向Netlify,他們會為你處理一切,並且提供一個非常漂亮的界面來設置高級需求。 它們當然支援自訂域名和HTTPS。 從Firebase過來,我期望能夠以一種對程序員友好的方式來管理部署,但我發現Netlify在處理每個靜態網站生成器方面甚至更好。 Netlify和Hugo 我使用的是Hugo,在本地我使用它內建的工具hugo server運行服務器,該工具會在每次更改時重新構建所有HTML文件,並且默認運行一個HTTP服務器,端口為1313。 為了生成靜態網站,我需要運行hugo,這會在public/文件夾中創建一系列的文件。 在Firebase的情況下,我採用了這個方法:我運行hugo來創建文件,然後運行firebase deploy,配置它將public/文件夾的內容推送到Google服務器。 然而,在Netlify的情況下,我將它連接到了我私有的GitHub存儲庫,並且每次我推送到我告訴Netlify同步的主分支時,Netlify都會啟動新的部署,變更將在幾秒鐘內生效。 提示:如果你在Netlify上使用Hugo,請確保在netlify.toml中設置HUGO_VERSION為最新的Hugo穩定版本,因為默認版本可能比較舊(截至目前為止)並且不支援最新的功能,例如後綴束。這是我的netlify.toml配置文件。 如果你覺得這不是什麼新鮮事,你是正確的,因為這在自己的服務器上並不難實現(我在其他沒有托管在Netlify上的網站上也這麼做),但這裡有一些新鮮事情:你可以預覽GitHub(或GitLab、或BitBucket)的任何分支/PR,同時你的主站點仍然運行並顯示“穩定”的內容。 另一個很酷的功能是可以在2個不同的Git分支上進行A/B測試。 Netlify為靜態網站提供的高級功能 靜態網站的顯而易見的限制是不能執行任何服務器端操作,這和你從傳統CMS(如WordPress)中期望的功能不一樣。 這既是一個優勢(因為安全問題較少),也是一個你可以實現的功能的限制。 一個博客並不復雜,你可以使用像Disqus或其他類似服務來添加評論功能。 或者,你可以通過嵌入第三方應用程序(如Wufoo或Google Forms)生成的表單來添加表單。 Netlify提供了一套工具來處理表單,驗證用戶,甚至部署和管理Lambda函數。 需要在發布之前對網站進行密碼保護?✅ 需要處理CORS?✅ 需要進行301重定向?✅ 需要為你的SPA進行預渲染?✅ 我只是觸及了Netlify提供的功能的表面,而沒有借助第三方服務,希望我給你提供了一個嘗試Netlify的理由。 預覽分支 GitHub的集成和拉取請求一起工作得很好。 每次你推送一個拉取請求,Netlify就會在一個特定的URL上部署該分支,你可以與你的團隊共享這個URL,或者與任何你想共享的人共享。 這裡,我提出了一個拉取請求,以預覽博客文章,但只在我的公共博客上不可用: Netlify立即捕捉到它,並自動部署它🎉 點擊鏈接會將您指向一個特殊的URL,讓您可以預覽該分支的網站版本。

在Netlify上自動觸發部署

我有一份定期發布在我的博客上的文章清單。以下是我如何透過IFTTT每天早上自動觸發我的Hugo靜態網站部署在Netlify上的方法。 注意:這個方法不僅適用於Netlify,也適用於其他提供手動部署Webhooks的服務供應商。 我有一份定期發布在我的博客上的文章清單,而我試著提前撰寫幾天的內容,為我無法寫作的時候或是需要休息的時候留出空間。 我認為保持一致性對於保持工作的動力很重要。過去兩個月,我每週一至週六都有發布文章,且我未來也想繼續這樣做,因為我真的很喜歡寫作。 我使用的是 Hugo 靜態網站生成器,並且托管在 Netlify 上。 這組工具組合非常棒,對於博客的設置我非常滿意。 今天我在山上遠足時,突然意識到已經超過我通常發布文章的時間,而我之前已經安排好的博客文章也沒有發布。 使用 Hugo,我可以設定一個未來的發布日期,當使用 hugo CLI 命令重新構建網站時,這篇文章不會包含在生成的 HTML 中,因為它是未來的文章。 Netlify 有這個很不錯的概念,在他們的伺服器上構建 Hugo 網站,所以我只需要觸發一個新的部署。通常情況下,當我將任何內容推送到 GitHub 時,Netlify 會自動警報並在一分鐘內進行部署。 但在這種情況下,我需要手動觸發Netlify上的部署,所以我使用iPhone登錄並點擊“觸發部署”。 這個動作在服務器端使用Hugo重建靜態網站,我只需將手機放回口袋。 博客文章上線了🎉,我只需在Twitter上發一條推文。 在步行時,我意識到我可以自動化所有這些工作。 我只需要每天早上9點自動觸發一個部署。於是我在Netlify界面上尋找他們是否有任何定時循環部署的自動化功能。雖然沒有這樣的功能,但他們有一個WebHook端點。 因此,我尋找了一些可以每天對WebHook進行POST設置的工具。 我使用了Zapier(也可以),但之後轉用了 IFTTT,因為它可以免費提供相同的功能。 在Netlify上,我建立了一個WebHook URL 這給了我一個自定義的URL來呼叫: 我在IFTTT上創建了一個每天早上8點提醒的"applet": 並且在其中設定一個Web請求來觸發Netlify上的部署鉤子。 現在,我只需要創建內容,按計劃日期將其推送到GitHub,就不用再擔心手動部署了!🎉 👨🏼‍💻

如何使用 Hugo 开始一个技术博客

一个从零开始到部署的使用 Hugo 开始技术博客的详细教程 Hugo 是一个非常好的工具,可以用来开始一个博客。 我自己在这个博客中使用了 Hugo 已经超过 2 年了。我喜欢使用 Hugo 的原因有几个。 它是简单,无聊,灵活,快速。 最重要的原因是它是简单的。你不需要学太多东西就可以开始使用。 你可以使用 Markdown 编写内容,这个格式允许我使用我最喜欢的编辑器(Bear)来写文章。 Hugo 是无聊的。不要误会,这是一件非常好的事情。作为一个开发者,我总是有冲动的想要不停地调整各种东西。Hugo 没有使用任何花哨的技术。它是用 Go 语言构建的,而 Go 是我最喜欢的语言之一,但这并不意味着我想要深入了解 Hugo 的内部工作方式,并改变它的工作方式。 Hugo 也没有展示任何炫酷或者下一代的东西,就像许多 JavaScript 框架经常会做的那样。 因此它非常无聊,这给了我很多的时间来做真正有用的事情,比如写内容。我专注于内容,而不是内容的展示方式。 话虽如此,Hugo 是非常灵活的。我用一个开源的主题开始了我的博客,然后随着时间的推移,完全改变了它。有时,我想在我的网站上做一些超出了普通博客范围的事情,而 Hugo 可以让我实现这些功能。 最后,我喜欢 Hugo 的另一个原因是它快速。为什么呢?首先,它的核心是 Go 语言,而 Go 语言以其非常快的速度而闻名。在 Go 的生态系统中,没有 100MB 依赖的概念。所有的东西都被设计得尽可能快速。此外,Hugo 不需要进行一些使用花哨技术时需要的繁琐操作。这是非常无聊的一个副产品。 好了,废话不多说。 Hugo 真的很棒,尤其是对于开发者来说,而且你愿意使用 Markdown 来写作的话。非技术人员可能会拒绝使用 Markdown,这是可以理解的。 此外,你还需要为使某些事情真正奏效而准备一个基于 Git 的工作流程。 在何处托管 Hugo 网站 Hugo 博客是完全静态的。这意味着你不需要自己托管服务器,也不需要使用特殊的服务。 Netlify、Now 和 GitHub Pages 是 3 个非常好的免费托管 Hugo 博客的地方。...

如何提交更改到Docker映像

當你部署應用程式後,發現有個 bug 需要修復,或者只是想要發佈更新,該怎麼辦? 執行 docker ps 命令可以取得正在運行的容器的 ID,然後使用 docker commit 來從中創建一個新的標籤: docker commit <id> <username>/<imagename>:<tagname> 你還可以在新版本中添加一個變更日誌訊息,列出新版本中的變更內容: docker commit --change "description" <id> <username>/<imagename>:<tagname>