簡體   English   中英

Jenkins內部版本號問題

[英]Jenkins build number issue

我已經發布了一個問題,但是我認為這是不完整的信息。這是我的問題。 我正在詹金斯(Jenkins)運行一個自由風格的項目。 以前,我在所有構建中都使用BuildForge。

問題是,有一個名為abc.properties的屬性文件。 它包含

內部編號= 0

以前,我使用的是xml和BTM文件,通過該文件“ BuildNumber”與當前內部版本號同步。 BTM文件的代碼是

echo build.number =%ABCBuild重定向到:c:%BUILDBASEDIR \\ myfile \\ ABCbuild.number echo build.number =%ABCBuild

c:%BUILDBASEDIR \\ myfile \\ ABCbuild.number echo build.number =%ABCBuild重定向到:c:%BUILDBASEDIR \\ myfile \\ GUIbuild.number echo build.number =%ABCBuild> c:%BUILDBASEDIR \\ myfile \\ GUIbuild.number echo收集器.build.number =%1重定向到:c:%BUILDBASEDIR \\ myfile \\ filebuild.properties回聲收集器.build.number =%1> c:%BUILDBASEDIR \\ myfile \\ filebuild.properties回聲收集器.build.type = indiv附加到:c:%BUILDBASEDIR \\ myfile \\ filebuild.properties回顯收集器。build.type= indiv >> c:%BUILDBASEDIR \\ myfile \\ filebuild.properties回顯。

然后創建一個zip文件,其中abc.properties文件包含內部版本號。

xml文件中涉及的步驟是

准備:

安全清潔:

創建文件:

創建當前文件qpack:

創建文件qpack:

構建文件qpack:

創建當前文件rpack:

創建文件rpack:

構建文件rpack:

准備任何工作室:

填充文件道具:

創建當前文件:

    <target name="create-current-file" depends="prepare-anystudio,fill-file-props">
    <property name="file.name" value="${file.name}"/>
    <property name="file.version" value="${file.version}"/>
    <property name="file.path" value="${file.path}"/>

    <echo message="Building file ${file.name} version ${file.version}......."/>

    <delete dir="${cur.dirname}/${dir.final}/files/${file.name}"/>
    <echo message="-sourcefiles ${file.path}/${file.name} -output            ${cur.dirname}/${dir.final}"/>
    <java dir="${cur.dirname}/${dir.filestudio.exec}"
          classname="com.comp.cas.ucf.configtool.DistributionUtil" failonerror="true"     fork="yes">
        <classpath refid="classpath.studio"/>

詹金斯涉及的構建步驟是

擦除工作空間

Perforce同步

運行批處理命令

調用Ant(前面提到的步驟)

建立成功

運行后生成腳本(批處理)

馬克迪爾

創建拉鏈

我已經寫了批處理文件以替換當前的內部版本號。 但是在ANT運行“總是游戲結束”情況后,因為它不會更新文件。 批處理腳本是

我正在使用的批處理腳本是。

 @echo off 

調用:FindReplace“ Buildnumber = 0”“ Buildnumber =%BUILD_NUMBER%” abc.properties退出/ b

 :FindReplace <Buildnumber=0> <Buildnumber=111> <collector.properties> set tmp="%temp%\\tmp.txt" If not exist %temp%\\_.vbs call :MakeReplace for /f "tokens=*" %%a in ('dir "%3" /s /b /ad /on') do ( for /f "usebackq" %%b in (`Findstr /mic:"%~1" "%%a"`) do ( echo(&Echo Replacing "%~1" with "%~2" in file %%~nxa <%%a cscript //nologo %temp%\\_.vbs "%~1" "%~2">%tmp% if exist %tmp% move /Y %tmp% "%%~dpnxa">nul ) ) del %temp%\\_.vbs exit /b :MakeReplace 

%temp%_。vbs使用Wscript回顯

%temp%_。vbs echo set args = .arguments%temp%_。vbs echo .StdOut.Write _%temp%_。vbs echo Replace(.StdIn.ReadAll,args(0),args(1),1, -1,1)%temp%_。vbs回顯結尾。

現在請有人告訴我。如何將內部版本號放入zip文件中。 是的,該zip文件是在本地回購路徑而非工作空間中創建的。

我正在使用Perforce進行所有代碼簽入和同步。

我認為“創建當前文件”也在填充我的文件和屬性文件。

請幫忙。 我想在詹金斯中使用類似的邏輯,以便我也可以在zip文件中擁有內部版本號。 上面的腳本確實很有幫助。它更改了工作區中的內部版本號,但沒有有效,因為在ANT INVOKES游戲更改后,我將內部版本號設為0,因為perforce中的內部版本號始終為0。

注意:ANT從P4存儲文件的工作區中獲取文件。

需要做什么。 請幫助,我已經花了三天時間。

如果在一個項目中使用此值,則不需要任何魔術或腳本幫助即可獲得內部版本號。 ;)

每個(以及任何支持jenkins的項目類型)作業(IMHO)都可以使用環境變量。

看到此鏈接:http:// <your_build_server_name> /env-vars.html/? 例如。

只要您使用SCM和Build Scripting(Maven,Ant 、?),就可以自由使用它們。 如果從Windows批處理中調用,請使用%%而非$ {}語法訪問它們。 ;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM