The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何讓 Node.js 應用程式在 GitHub Action 大幅提昇 CI/CD 執行效率

我手邊有個 Next.js 的應用程式,在設定 GitHub Action 的 CI/CD 自動部署到 Azure Web App 的過程,在 CI 的 actions/upload-artifact@v2 這個步驟花費了超級大量的時間上傳 node_modules 資料夾中的檔案,實在是太沒效率了。因此我改在上傳前壓縮整個目錄,結果整體 CI/CD 的時間直接從 26m 34s 降到 8m 58s 之多,部署效率大幅提升。今天這篇文章我就來說說我的寫法。

... 繼續閱讀 ...

PowerShell 的 Get-ChildItem 需注意 -Include, -Path 與 Reparse Points 地雷

我一直覺得 Windows PowerShell 是一個讓人又愛又恨的命令列執行環境,其強型別的優點確實是好的讓人無法拒絕,但其執行環境的複雜度、版本相容性與各種 Cmdlet 的奇葩設計,每次遇到也都是讓人心幹神疑心曠神怡,不免嘖嘖稱奇。今天我就來分享一個昨天寫文章時遇到的神奇狀況,也就是我們常用的 Get-ChildItem cmdlet 需注意 -Path-Include-Recurse 的各種用法組合,以及一個 Reparse Points 的問題。

... 繼續閱讀 ...

遷移容器映像(Container Image)到另一台主機的各種作法

要遷移 Container Image 到另一台主機的方法很多,最簡單的就是自己架設 Container Registry 或使用雲端的 Container Registry 服務,只要把本機的 image 推送到遠端,就可以到另外一台電腦下載。但如果只是同事之間要遷移 Container Image 而已,或是在企業完全斷網(air-gapped)的環境下要傳輸檔案到另一台電腦,這時就有好幾種作法可以用。本篇文章將分享幾種常見的情境,告訴你怎樣可以順利的移轉容器或容器映像。

... 繼續閱讀 ...

直接將 T-SQL 命令透過 STDIN 的方式傳入 SQL Server Linux 容器執行的方法

我先前寫過兩篇文章,一篇是 使用 Docker 執行 SQL Server on Linux 容器之常用工具與命令 分享各種常見的執行命令,另一篇則是 深入剖析 docker run 與 docker exec 的 -i 與 -t 技術細節 幫助我更加理解 Docker 處理 STDIN 與 Virtual Terminal (VT) 之間的關係。這讓我連結到一個長久以來希望被微軟實現的需求,如果我想直接透過 STDIN 將 T-SQL 傳入 SQL Server on Linux 容器執行,不想先把本機的 T-SQL 檔案複製進去,那該如何處理?想不到還真的給我研究出方法了!

... 繼續閱讀 ...

使用 Azure Developer CLI 改善 Azure 開發人員的整體開發體驗 (DX)

Azure Developer CLI (azd) 是一套以開發者為中心思考的命令列工具,專門用來建立可以部署到 Azure 的雲端應用程式。他提供一組命令可以幫助你在開發專案時,可以在專案範本、設定 CI/CD、整合開發工具(IDE)之間擁有一致的開發體驗,而且可以大幅降低 Azure 部署的進入門檻。這套工具還在預覽階段,專案範本很少,不過感覺很有發展潛力,今天這篇文章,我就來帶大家走一遍這套工具的使用過程。

... 繼續閱讀 ...

如何透過 PowerShell 自動寫入執行檔路徑到 PATH 使用者環境變數

今天看到微軟推出 Azure Developer CLI 工具 (預覽版) 的消息,便立即安裝起來玩看看,而在安裝的過程中有發現他有用 PowerShell 寫入 PATH 環境變數,我就把安裝程式解析了一下,發現有一段 Code Snippet 相當實用,以後寫安裝程式的時候就可以直接沿用了。

... 繼續閱讀 ...

如何在 .NET 透過 nuget.config 自訂 NuGet 套件來源

有時候我們會希望從本機硬碟安裝 NuGet 套件,有時候則是想要安裝公司內部發行的 NuGet 套件,我發現許多人都會透過 Visual Studio 去調整全域的 nuget.config 設定檔,但這樣很容易造成你在開啟其他不同專案的時候會無法成功還原套件的情況。另一方面,我們在 CI 的環境中,若需要指定自訂的 NuGet 套件來源,通常也都是透過建立 nuget.config 的方式來指定。這篇文章我將來說明如何在方案或專案中建立 nuget.config 檔案,並將該檔案加入到版控之中。

... 繼續閱讀 ...

如何完美解決 PowerShell 無法正確解析命令列參數的問題

這十幾年來,在 Windows 使用 PowerShell 呼叫一些命令列工具,一直都存在一個惱人的問題,那就是傳入 *.exe 的參數會自動將雙引號(")過濾掉,導致程式無法正確執行。這個問題終於在 PowerShell v7.2.0 得到了解決,這篇文章我就來說說這個問題的來龍去脈。

... 繼續閱讀 ...

介紹好用工具:mssql-scripter (自動將完整資料庫匯出成 T-SQL 的神器)

遷移 SQL Server 資料庫是一件感覺好像很簡單,但做起來可能會很麻煩的工作。其實透過 SSMS 就可以做到很多種不同的資料庫遷移方法,但我想找一個能夠更方便的方式,透過命令列的方式自動化整個遷移過程,最近我找到了這個 mssql-scripter 工具,完全可以符合我的需求。這篇文章我就來說說我的應用情境,以及 mssql-scripter 工具的使用方式。

... 繼續閱讀 ...