1. 程式人生 > >Jenkins+Git+PHP生成構建PHP專案的changelog以用於生成增量或減量打包釋出

Jenkins+Git+PHP生成構建PHP專案的changelog以用於生成增量或減量打包釋出

由於專案使用Git進行原始碼管理,並且每次釋出的時候並不是全布打包進行釋出,而是隻釋出與上次釋出版本之後所修改的檔案。考慮到每次釋出的時候會有新增的檔案、修改的檔案以及刪除的檔案,在網上看了不少資料,都是通過用git diff --stat base_branch_name current_branch_name --name-only這樣的方式去做的,本來也想用這種方式去做,但是發現這種方式只能列出增加跟修改的檔案,對於刪除的檔案就需要自己額外去寫個指令碼去列出哪些檔案被刪除了,然後在釋出的時候用指令碼支刪除這些檔案。

由於Jenkins對Java有增量構建的支援,所以想看一下能否用於PHP,在調查的過程中發現Jenkins在/home/your_user_name/.jenkins/jobs/job_name/builds/job_id這個目錄下會生成一個changelog.xml的檔案,雖然這個檔案的副檔名是.xml但是檔案內容並不是xml格式的,而是文字的。

所以想利用同樣的方式為PHP專案構建也生成一個同樣的changelog.xml檔案, 用於生成當前分支/版本與production的分支/版本的檔案差異的changelog,經過用如下方法的嘗試成功將dev_0.1這個分支與master分支的檔案差異生成到了changelog裡,如下方式只是一個參考,使用時需要替換成自己的分支資訊,本文只列出Jenkins Source Code Management的配置部分:

用如上配置配置好之後,點save儲存,然後build,在build完成後可以到/home/your_user_name/.jenkins/jobs/your_project_name/buids/build_num目錄下檢視changelog.xml檔案,會列出如下的資訊:

commit b2b9b4bbfdac01cf8bd0c6aa47b60dc49c93d394
tree 2a3e8dcc4fff7da69efb4e4de1bcda1485a98e95
parent 54cfd7edc7c7701239646642b1375c8dd78d78d8
author david 2016-10-20 15:56:32 +0800
committer david 2016-10-20 15:56:32 +0800

    delete 1.txt and change readme.md



:100644 000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 D    1.txt
:100644 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 d00491fd7e5bb6fa28c517a0bb32b8b506539d4d M    README.md
commit 561d13e93281b4c33d2100bad660e8f3a0c7bf44
tree 9a33f5747dd96d06ea58fb1782bee97134b21d19
parent 05dd2d0ac1428e1f2f1bfac5ea7ecbe79e45481f
author david 2016-10-20 11:48:16 +0800
committer david  2016-10-20 11:48:16 +0800

    add another one index1.php



:000000 100755 0000000000000000000000000000000000000000 d8cc407a0837159695d504b65da93fe78d4386f3 A    index1.php
commit 05dd2d0ac1428e1f2f1bfac5ea7ecbe79e45481f
tree 57dfe6fb18d4fe7f619920736260170dedc259ab
parent 2feb40bb7c164bccc6cb11d3476df396f1a0660e
author david 2016-10-20 10:34:39 +0800
committer david 2016-10-20 10:34:39 +0800

    add one new index.php



:000000 100755 0000000000000000000000000000000000000000 d8cc407a0837159695d504b65da93fe78d4386f3 A    index.php
commit 2feb40bb7c164bccc6cb11d3476df396f1a0660e
tree 38f9b68f0cea144a7af56e2f40c1ce1583d7ca02
parent 676272fd23d796e925e0d91bea5c972f3dbec77b
author david 2016-10-19 16:01:34 +0800
committer david 2016-10-19 16:01:34 +0800

    git info script



:000000 100644 0000000000000000000000000000000000000000 a9bf588e2f88457fdf73ac7361ef1d596fb81453 A    git_diff_info.sh


根據這個changelog.xml檔案我們可以看到我們的開發分支與master這個分支的檔案差異,然後可以根據這個檔案差異生成用於釋出的增量包以及要刪除的檔案列表。

對於釋出的部分會在後續部分陸續補上。

相關推薦

Jenkins+Git+PHP生成構建PHP專案changelog用於生成增量減量打包釋出

由於專案使用Git進行原始碼管理,並且每次釋出的時候並不是全布打包進行釋出,而是隻釋出與上次釋出版本之後所修改的檔案。考慮到每次釋出的時候會有新增的檔案、修改的檔案以及刪除的檔案,在網上看了不少資料,都是通過用git diff --stat base_branch_name

Jenkins+Gitlab+蒲公英構建Android專案, 實現自動打包上傳並生產二維碼下載

基本準備 # 關閉selinux setenforce  0 sed   -i     '/=enforcing/s/enforcing/disabled/g'  /etc/sysconfig/selinux # 關閉防火牆 service   iptables 

使用Phalcon+PHP-FPM構建PHP基於多程序的資料庫連線池

之前看到網上有一篇文章說Phalcon和PHP沒有資料庫連線池,而swoole本身提供了很好的資料庫連線池。實際上這是一種誤解,PHP自身早就實現了持久化的資料庫連線。而Phalcon基於zephir寫的資料庫連線介面卡,必然也是支援PHP自身實現的這種資料

jenkins Git maven Nexcus 構建環境搭建

 1:搭建Git Maven Jenkins Nexcus 環境     首先建立Maven Project ,android 的project 是基於M2 外掛,經常出現的錯誤就是,     繼續安裝外掛 ,如果還有這樣的錯誤,則修改pom.xml 檔案     注意

Jenkins入門教程之--構建軟體專案

Jenkins可以用於執行典型的構建伺服器工作,例如執行連續/官方/每晚構建,執行測試或執行一些重複的批處理任務。這在Jenkins被稱為“自由式軟體專案”。 設定專案 轉到Jenkins首頁,選擇“New Job”,然後選擇“Build

使用Jenkins+Git+Gradle自動化構建Android APK包

jenkins 簡介 Jenkins是基於Java開發的一種持續整合工具,用於監控持續重複的工作,功能包括:持續的軟體版本釋出/測試專案和監控外部呼叫執行的工作。 步驟1: 1.1 下載Tomcat,建議版本6.0以上;下載Tomcat9.0.zip 1

開源中國中MybatisePlus 程式碼自動生成——初體驗通過程式碼生成構建SSM專案

開源中國中有很多優秀的開源專案可以供我們學習。本次分享的是一個基於Mybatise 程式碼自動生成工具,只需要之前設計資料庫,然後使用自動生成程式碼的工具類,可以將entity,mapper,service,Controller層自動生成。並且實現基礎的功能,增刪查改,以及分

linux伺服器中Jenkins整合git、Gradle持續構建Springboot專案

Jenkins是用java編寫的開源持續整合工具,目前被國內外各公司廣泛使用。本章教大家如何在linux伺服器中使用Jenkins自動釋出一個可作為linux服務釋出的Springboot專案。 自動構建需要經過如下步驟:從git倉庫下載程式碼、使用Gradle進行構建、使用SSH推送到另

jenkins+git+maven+centos7自動化構建部署專案(二)

在預設情況下,Tomcat Manager是處於禁用狀態的,需要我們進行相應的使用者配置之後才能使用Tomcat Manager。 Tomcat Manager的使用者配置是在Tomcat安裝目錄/conf/tomcat-users.xml檔案中進行管理的。 我們只需要在tomcat-users節點中配置相

jenkins+git+maven+centos7自動化構建部署專案(一)

基礎環境         建議使用jdk1.5以上版本  (這裡不做jdk安裝講解,去官網下載jdk下載地址)         下載(jdk-7u45-linux-x64.tar.gz版本) jenkins安裝          執行以下命令:               

Jenkins持續化構建Android專案(二)-構建Android專案生成apk(by 星空武哥)

Jenkins安裝完我們就可以新建專案了 首先開始新建一個專案,選擇型別為“構建一個自由風格的軟體專案” 新建完成,就是配置專案 開始配置“General” 構建觸發器 我們選擇Poll

構建自己的PHP框架--構建緩存組件2

oss ash oiv ria auto ports usb xlsx 自己的 Java%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E6%97%A5%E5%B8%B8%E2%80%94%E2%80%94%20%E3%80%8A%E7%BC%96

Jenkins+git+maven 打包構建部署

jenkins本文出自 “清風柳絮” 博客,請務必保留此出處http://binuu.blog.51cto.com/801317/1944493Jenkins+git+maven 打包構建部署

實戰docker+jenkins+git構建持續集成環境

docker jenkins docker+jenkins+git git 本文重點介紹jenkins以及讓jenkins如何實現在docker容器中運行。jenkins和docker私有倉庫又是怎麽結合的。docker說明及安裝和git說明及安裝在本文中不會特別詳細的介紹。 ?並且,在本文中

構建PHP運行環境

優化 技術分享 eve soc mys onf ins sql fff 構建PHP運行環境 在搭建PHP的前提把Apache,MySQL搭建完成。 安裝PHP軟件包(手工編譯安裝) 1:安裝GD庫和GD庫關聯程序 //用來處理和生成圖片// [root@localhost

ICO圖標在線生成php生成ICO圖標在線制作源碼

需要 在線生成 dimens jpg add spa vars 實現 strip 我們做web系統的時候,每個瀏覽器的tab這裏都會有一個圖標,這個圖標叫favicon圖標,favicon.ico文件放在系統的根目錄 如果程序員沒有ICO制作工具,那麽要如何生成圖標呢?可

win10+jenkins+git+自動發布(搭建+構建)

安裝 mar str .net war包 技術分享 scp jar包 fill 1.下載jenkins https://jenkins.io/download/ 直接百度jenkins 進行下載 我一般是直接下載最新的 這裏已windows為例 下載成功後 會給到你一個壓

Jenkins自動構建ionic專案

1.原始碼管理: 從這裡拉去svn上最新版本的程式碼,@HEAD代表拉去最新版本的程式碼  2.構建 #!/bin/sh -l #npm install --unsafe-perm rm -rf node_modules/@types/jquery rm -r

jenkins+svn+Ant+tomcat+非maven專案構建

        首先,輸入專案名稱,建立一個自由風格的專案; 然後,配置舊專案的策略引數,目的是防止構建專案太多,佔用資源。   下一步,jdk版本選擇: 下一步,關聯svn專案。 下一步:配置ant 看不清,再來一張。

Jenkins使用Gradle構建Android專案時Error: Some file crunching failed, see logs for details

近兩天在自己本機上使用Jenkins構建Android專案報了一個錯誤 15:39:05.511 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an e