windows下jenkins常見問題填坑

 沒有什么高深的東西,1 2天的時間大多數人都能自己摸索出來,這里將自己遇到過的問題分享出來避免其他同學再一次挖坑.


目錄

  1. 主從節點

  2. Nuget自動包還原

  3. powershell部署

  4. 內網機器實現基于變化的構建

  5. Github私有項目pull時限


  所謂主從,主要應用的場景例如多種環境(windows/linux,.net/java/php)需要不同的構建基礎,而我們又不想都將一系列的步驟和環境混雜在一臺構建服務器上,所以類似于go中的代理,jenkins也提供了slave節點的概念,大家可以把不同類別的項目的構建部署在分類的節點服務器上。節點服務器不需要安裝完整的jenkins包,構建事件的分發由master端來執行。

這里需要注意的就是主從節點之間的通信,我這里選擇是將從節點以windows service的方式啟動,而我碰到的坑就是環境變量的配置問題,當我在主從服務都安裝好jdk并且配置完環境變量后,發現啟動從節點時還是怎么都找不到jdk,卡了半個小時才發現jenkins 從節點的環境變量是需要在web系統中配置的,此坑填平,后者慎入。

至于slave端的分配在構建配置中

?


  用.net開發的同學nuget應該大多都涉及到,類似java的maven,神器之一,不多說。如果用visual studio開發這里會有一個選項

選中這里的話 會再在你rebuild項目的時候 自動將丟失的包補齊,當然僅限于公眾平臺上的內容,如果是同學們自己開發的local版本的包還會遇到另外的問題,這里我們重點不計較這些。

回到jenkins上來因為jenkins的構建條件中目前還不支持直接使用.net的ide,所以我們需要安裝msbuild的插件

裝完以后構建后發現編譯失敗,各種組件丟失。這里再填一坑,首先卸載我們的主要輸出項目,然后編輯項目屬性內容,在最后加上一個節點配置

?
1
2
3
4
<Target Name="AfterBuild">
????<MSBuild Condition="'$(Configuration)|$(Platform)' == 'Release|x86'" Projects="NuGet\NuGet.msbuild" />
??</Target>
??<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />  

  還原項目,這樣再使用msbuild命令就OK了。


  powershell的使用場景可以這樣理解,在我們build通過一個項目后,我們需要將他部署在一臺測試服務器上,但是我們的數據庫配置需要修改,如何去除人工的干預,這里就需要使用到powershell或者其他工具了。

powershell的使用你可以分為2種,一種是寫好ps腳本然后通過batch command中powershell命令來完成,另外一種是jenkins直接安裝powershell命令,這里更推薦后者,因為有些時候你并沒有權限上服務器上修改腳本或者其他元素,所有后者更直觀簡單,簡單的數據庫連接修改腳本

?
1
2
3
4
5
$original_file = 'xx\web.config'
$destination_file =? 'xx\web.config'
(Get-Content $original_file) | Foreach-Object {
????$_ -replace 'name="dbdemo" connectionstring=".+" ', 'name="dbdemo"? connectionString="server=(local);database=basedemo;user id=demoUser;password=!@#qqq" providerName="System.Data.SqlClient" '
} | Set-Content $destination_file -encoding UTF8

?

  如果我們的master機器部署在內網,github通過hook的方式回調不到,那么我們就很難基于github項目的push動作來進行基于版本的即時構建。怎么辦?這里可以使用一個取巧的辦法

在poll scm模式下選擇* * * * *,當系統發現本地文件沒有變更時,會忽略掉此次構建。


  github私有項目,主要也就是ssh授權的問題,這里的坑不是權限認證問題,而是github插件的時限問題,默認是10分鐘,由于某些項目可能資源比較大,第一次pull的時候耗費時間比較長,但是控制臺提示一直停留在認證那個階段,讓操作人員誤以為是認證問題,這個估計也算個坑吧。填坑方法如下圖:

ok 簡單的填坑總結。有些問題雖然小但是一點一點排查總歸還是浪費時間,希望對大家有幫助

原創作品允許轉載,轉載時請務必以超鏈接形式標明文章原始出處以及作者信息。
作者:熬夜的蟲子
點擊查看:博文索引

轉載于:https://www.cnblogs.com/flysun0311/p/5445567.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536366.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536366.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536366.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Cow Contest【最短路-floyd】

Cow Contest POJ - 3660 N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant skill rating that is unique among the competitors. …

【學習Android NDK開發】Type Signatures(類型簽名)

類型簽名&#xff08;Type Signatures&#xff09; (<Parameter 1 Type Code>[<Parameter 1 Class>];...)<Return Type Code> The JNI uses the Java VM’s representation of type signatures. Following Table shows these type signatures. Type Signatur…

Symantec(賽門鐵克)非受管檢測

為了查找局域網內沒有安裝賽門鐵克客戶端的IP&#xff0c;采用Symantec Endpoint Protect Manager 的非受管檢測機制進行網段掃描。 非受管檢測機制的原理是&#xff1a;每臺電腦開機時都會向同網段電腦發arp&#xff0c;當非受管檢測器接到arp請求時&#xff0c;會寫入本地的a…

SQL語句性能優化操作

1、對查詢進行優化&#xff0c;應盡量避免全表掃描&#xff0c;首先應考慮在where及order by涉及的列上建立索引。 2、應盡量避免在where子句中對字段進行null值判斷&#xff0c;創建表時NULL是默認值&#xff0c;但大多數時候應該使用NOT NULL&#xff0c;或者使用一個特殊的值…

sql語言特殊字符處理

我們都知道SQL Server查詢過程中&#xff0c;單引號“”是特殊字符&#xff0c;所以在查詢的時候要轉換成雙單引號“”。但這只是特殊字符的一個&#xff0c;在實際項目中&#xff0c;發現對于like操作還有以下特殊字符&#xff1a;下劃線“_”&#xff0c;百分號“%”&#xf…

小節

算法導論已學兩部分&#xff0c;第一部分是基礎知識&#xff0c;第二部分是排序。基礎知識介紹如何分析證明算法以及求時間復雜度。第二部分的排序學了很長時間。先是從簡單排序到復雜排序的一個過渡&#xff0c;打開了很多思路。然后就是無盡的算法分析。算法分析的時間比理解…

SPS2003升級到MOSS2007相關資料及問題總結

這幾天要把客戶的SPS2003門戶升級到MOSS2007的&#xff0c;客戶SPS2003門戶&#xff0c;數據26G&#xff0c;使用了自定義WebPart、自定義頁面、SSO等功能。升級過程中碰到大量問題。其中主要的問題有幾個&#xff0c;在這里把它們整理一下> 1、sps2003升級時&#xff0c;升…

Milking Time【動態規劃-dp】

Milking Time POJ - 3616 Bessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that she decides to schedule her next N (1 ≤ N ≤ 1,000,000) hours (conveniently labeled 0..N-1) so that she produces as much milk as po…

HTTP首部(1)

1、報文首部 HTTP協議的請求和響應必定包含HTTP首部&#xff0c;它包括了客戶端和服務端分別處理請求和響應提供所需要的信息。報文主體字兒是所需要的用戶和資源的信息都在這邊。  HTTP請求報文組成 方法&#xff0c;URL&#xff0c;HTTP版本&#xff0c;HTTP首部字段 HTTP響…

UVA272--TEX Quotes【字符串】

TEX Quotes UVA - 272 題目傳送門 題目大意&#xff1a;將輸入字符串中的所有對雙引號的做雙引號改為 &#xff0c;右雙引號改為 。 解決方法&#xff1a;遍歷一遍及時修改即可。 AC代碼&#xff1a; #include <cstdio> #include <iostream> #include <…

XMLHttpRequest+WebForm模式(接口IHttpHandler)實現ajax

首先引入ajax.js文件 創建xmlhttpRequest對象 Code//創建XMLHttpRequest對象var xmlHttp;function newXMLHttpRequest() { if (window.XMLHttpRequest) { xmlHttp new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlHttp …

UVA----10082?WERTYU【字符串】

WERTYU UVA - 10082 題目傳送門 題目大意&#xff1a;按照所給的鍵盤樣式&#xff0c;以及錯誤的字符串&#xff0c;輸出正確的字符串&#xff0c;其輸入的每一個字符都按照鍵盤樣式向右錯移了一位。 解決方法&#xff1a;將整個鍵盤用數組存起來&#xff0c;遍歷一遍即可。…

關于C生成的匯編與C++生成的匯編在函數名稱上的差異

最近用到ucos&#xff0c;這個RTOS本身是用C語言和部分匯編編寫&#xff0c;而自己又打算用C來寫應用&#xff0c;在其中遇到幾個問題&#xff0c;一番折騰之后&#xff0c;讓我更加深刻認識到了在一些一般不注意的細節上&#xff0c;C與C的不同。 1、對于ucos&#xff0c;雖…

UVA401????????Palindromes【字符串】

Palindromes UVA - 401 題目傳送門 題目大意&#xff1a;給你一個字符串&#xff0c;判斷其是回文串還是鏡像串。 AC代碼&#xff1a; #include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #include <cstdlib> #…

IIS 5 與IIS 6 原理介紹

[ 轉] ASP.NET Process Model之一&#xff1a;IIS 和 ASP.NET ISAPI 前幾天有一個朋友在MSN上問我“ASP.NET 從最初的接收到Http request到最終生成Response的整個流程到底是怎樣的&#xff1f;”我覺得這個問題涉及到IIS和ASP.NETASP.NET Runtime的處理模型的問題&#xff0c;…

UVA340????????Master-Mind Hints【數組】

Master-Mind Hints UVA - 340 題目傳送門 題目大意&#xff1a;先輸入一個整數n&#xff0c;表示有n個數字&#xff0c;下面第一行代表正確答案&#xff0c;其下每一行代表用戶猜的答案&#xff0c;需統計其有多少數字位置正確&#xff08;A&#xff09;&#xff0c;有多少數…

教你如何把自己從好友的QQ中刪除

在QQ中&#xff0c;有些人看了不太順眼&#xff0c;真不知當初為何讓他加自己為好友的&#xff01; 那有什么辦法&#xff0c;可以把自己從對方的QQ中刪除呢&#xff1f; 其實&#xff0c;用QQ就可以輕松搞定&#xff01; 讓我來為你支一招吧&#xff01; 打開QQ&#xff0…

UVA1583?Digit Generator

Digit Generator UVA - 1583 題目傳送門 題目大意&#xff1a;若x的各位數之和加上x本身等于y&#xff0c;則證明x是y的生成元&#xff0c;求輸入數字n的最小生成元。 AC代碼&#xff1a; #include <cstdio> #include <iostream> #include <algorithm> …

C++內存詳解

偉大的Bill Gates 曾經失言&#xff1a; 640K ought to be enough for everybody — Bill Gates 1981 程序員們經常編寫內存管理程序&#xff0c;往往提心吊膽。如果不想觸雷&#xff0c;唯一的解決辦法就是發現所有潛伏的地雷并且排除它們&#xff0c;躲是躲不了的。本文的內…

UVA1584????????Circular Sequence【字符串】

Circular Sequence UVA - 1584 題目傳送門 題目大意&#xff1a;輸入一個環形字符串&#xff0c;需輸出其最小字典序的形式的字符串。 AC代碼&#xff1a; #include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #includ…