發表文章

目前顯示的是 十二月, 2020的文章

Jenkins-無法儲存工作設定

圖片
問題 同事回報CI工作發行錯誤,原因為建置參數遺失...。此工作只有在昨天Jenkins更新到2.69後,修改了Pipeline的語法而已,查詢工作設定後,發現原本的參數設定不見了....變成未設定的狀態. 測試其他如trigger build等其他的設定,儲存後也都會不見....昏 除錯過程 本以為是Jenkins 2.69更新的問題,所以就先 回報議題 ,過了一天收到了回覆,開發人員使用相關環境測試,是沒問題的....。 為確定是否為Java runtime或是環境等問題,我重新安裝最新的及舊版Jeknins,測試結果正常 將主機的Jenkins還原到我本機來測試後, 問題一樣存在 .....。 在確定與主機環境一致後,再比對兩邊的檔案後,差異的只有Plugin,所以我先將測試正常的Plugin替換到目前有問題的Jenkins下,果然一測試就正常了....。 ps:此目錄只需要copy .jpi就可以使用了 解決方式 在經由交叉比對、連番測試差異的plugin,終於找到了問題所在,一枚六年前安裝,目前已停止維護的 TFS Plugin 造成的。在Jenkins 更新至2.64之後,此Plugin會影響Jenkins的工作設定。 目前的版控已全部改成git,所以將它移除後,恢復正常。

git 修改歷史訊息

圖片
前言     之前同事有問,如何修改commit的訊息? 當下不會,所以只好使用其他非正統方式處理....。這次換自己有此需求,順便將此技能修成。 如何修改 有2種情況,需使用不同的方式修改。 1.要修改的訊息為最新的一筆commit 使用--amend 修改 git commit --amend -m "third by amend" 修改後,commit 的ID會重新計算一個新的 2.修改歷史記錄的某一筆。 本例:修改紅框的seond2,綠色指標為待會 rebase的 Commit ID git rebase -i 4e1d5be 執行後會跳出Vim 編輯器畫面,將第一行的pick改成reword (修改訊息的命令)    儲存後,關閉會再跳出另一個Vim 編輯器畫面,此時就可以直接修改你要的訊息了,紅框為我本次加入的 再次查看,結果如下 3.修改第一筆commit (init) 第2點的命令無法修改init的commit,只能修改在它之後的commit。解決如下命令,其他動作一樣。 git rebase --onto HEAD HEAD master 其它參考 修改 Commit 紀錄 修改歷史訊息

C# MongoDb基本操作

圖片
前言    公司的資料庫,部份資料表過大,造成查詢效能低落。目前考慮要將較大的資料表及較不重要的Log檔,搬到MongoDB上,來解決效能瓶頸。 安裝 Mongodb Windows 4.4.1 MongoDB Database Tools 資料庫管理工具,用來執行備份、還原。 下載後,將相關exe放到安裝目錄內。 Nuget C# MongoDB Driver  : Install-Package mongocsharpdriver -Version 2.11.4 C# 新增、讀取、更新、刪除 (CRUD) 操作 安裝套件 Install-Package mongocsharpdriver -Version 2.11.4 初始化        private static void Init()         {             string connectionString = "mongodb://localhost"; // MongoDB 連線字串             _mongoClient = new MongoClient(connectionString);// 產生 MongoClient  物件             _mongoDatabase = _mongoClient.GetDatabase("Demo");// 取得  MongoDatabase 物件             _mongoCollectionProduct =  _mongoDatabase.GetCollection<Product>("Product"); // 取得 Collection(可以視為資料表)         } ps:資料庫及Collection可以不用事先建立,寫入時不存在,會自動建立。 新增         private static void Insert()         {             var products = Product.GetTestData();             _mongoCollectionProduct.InsertMany(products);//寫入多筆             var single =