Azure DevOps Services 的 Hosted Agent (vs2017-win2016
) 與 GitHub Actions 的 Runner (windows-2016
) 即將在 2022/03/15 正式移除對 Windows Server 2016 的支援,屆時使用這些 Hosted Agents 的 Pipelines 將無法執行。但我們公司使用 Azure DevOps Services 多年,數百個專案的 CI/CD 很難一個專案一個專案檢查是否選用的 Hosted Agents 即將退役,這篇文章我將分享怎樣可以批次找出有問題的 Pipelines 設定。
... 繼續閱讀 ...
我今天遇到了一個棘手問題,原本想透過 PowerShell 寫入一個多行的文字,並放入 Azure Pipelines 執行。這樣的需求我寫過很多次了,不過當下的我突然想不起來確切的語法,所以上網 Google 找到了 PowerShell Multiline String 這篇文章,看到了一個解決方案,當下沒有多想,複製貼上就套用了,而且測試過確實有效,接著就是一連串的鬼打牆,浪費了寶貴的半小時生命。
... 繼續閱讀 ...
上周我們遇到一個非常罕見的問題,一群人費了九牛二虎之力才徹底釐清案情,並且成功修復問題。我們在部署 Azure Functions 的時候,大部分的情境底下都是正常的,唯獨將站台重新部署到 Linux 平台的 App Service Plan 之後,詭異的狀況就此發生。由於案發過程過於冗長,我打算摘要記錄一下我們遭遇的現況與解決方法。
... 繼續閱讀 ...
Azure Pipelines 有個 Logging commands 可以用來與 Agent 進行溝通,你可以在執行 Pipelines 的過程中,對 Agent 做出許多設定,可以做的事情還蠻多的,而且我之前也寫過好幾篇文章,今天我想專注在「環境變數」這件事情上,尤其是 PATH
環境變數。
... 繼續閱讀 ...
今天有同事來問我,他用 SQL Server 資料庫專案管理 SQL Server 資料庫的結構描述 (Schema),在開發環境與測試環境的更新與比對都沒有問題,但偏偏正式機上的 SQL Server 資料庫因為防火牆的關係,通常無法直接從本機直接連接,這導致他沒有辦法比對正式資料庫與開發資料庫之間的差異,如果有人異動了正式資料庫,日後的資料庫更新就很容易出問題。這篇文章,我就來介紹這套 SqlPackage 命令列工具。
... 繼續閱讀 ...
我之前有在 使用 MSDeploy 部署一個在 Private Link 封閉網路環境下的 Function App 文章中分享透過 MSDeploy 部署到任意網站的方法。今天這篇文章我則是要來分享如何在只有 發行設定檔 (Publish Profile) 的情況且沒有任何 Azure 訂用帳戶權限的情況下,如何順利透過 Azure Pipelines 的 Hosted Agent 將檔案發佈到 Azure App Service 任意站台下。
... 繼續閱讀 ...
我們經常在 Azure DevOps Services 的專案中撰寫 Wiki 文件,但是 Azure DevOps 的 Wikis 線上編輯器實在是太難用了,我覺得還是在 VSCode 撰寫 Markdown 來的方便許多。除此之外,因為 Azure Wikis 可以放附件上去,但也不是所有檔案類型都支援,所以偶爾會遇到無法上傳附件的狀況。還有,你可能想要取回已經刪除的文件,但是從線上似乎沒有方法可以查閱這些文件。今天我打算用這篇文章來解決上述所有問題!
... 繼續閱讀 ...
雖然 Azure Pipelines 提供的 Microsoft-hosted agents 大多已經內建了 Adopt OpenJDK 8.0/11.0/13.0 版本可供選擇,但是我們最近有個案子,客戶指定要用 IBM Java SDK 8.0 為主要的 JDK 版本,所以就需要額外下載與設定才能使用。本篇文章將說明完整的設定方法。
... 繼續閱讀 ...
在命令列環境下執行程式,這個世界普遍有個共識,那就是應用程式的結束狀態碼(Exit Code)為 0
時,就會被視為是「沒有錯誤」的結果。任何非 0 的結束狀態碼,都代表有一定程度的錯誤發生。因此在 Azure Pipelines 或任何其他 CI 平台上,預設遇到應用程式回傳 Non-Zero 的結束狀態碼,就會自動報錯。誰知道 ROBOCOPY 原來複製成功,也會回傳非 0
的結束狀態碼!
... 繼續閱讀 ...