From 709977d07a2e6c81be0780b9ea5dae746bdbb5e7 Mon Sep 17 00:00:00 2001
From: wangzilun <964606955@qq.com>
Date: Mon, 21 Feb 2022 15:49:01 +0800
Subject: [PATCH] 合并分支

---
 Jenkinsfile                                            |   40 +++++++
 gitflow-installer.sh                                   |  117 +++++++++++++++++++++++
 .gitignore                                             |    4 
 test.js                                                |   13 --
 src/main/webapp/WEB-INF/web.xml                        |   10 ++
 src/test/java/com/hbbohua/gitStudy/HelloWorldTest.java |   10 ++
 pom.xml                                                |   42 ++++++++
 src/main/java/git_study.java                           |   18 +++
 8 files changed, 237 insertions(+), 17 deletions(-)

diff --git a/.gitignore b/.gitignore
index 5c3f700..ef6b348 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,7 @@
 # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
 hs_err_pid*
 /.idea/
+gitflow-installer.sh
+target/
+**/target/
+*.iml
\ No newline at end of file
diff --git a/Jenkinsfile b/Jenkinsfile
index 4fec215..7c4cca9 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -10,6 +10,7 @@
         }
     options {
         //给日志加上时间错, 需安装 Timestamper 插件
+        //mvn test surefire-report:report
         timestamps()
         ansiColor('xterm')
         //丢弃旧的构建前两个为发布包保留天数(比此早的发布包将被删除,但构建的日志、操作历史、报告等将被保留)和构建个数
@@ -29,13 +30,45 @@
 
             }
         }
-        stage('test') {
+        stage('testMaven') {
+            steps {
+
+                sh 'mvn clean test -U'
+                junit allowEmptyResults: true, keepLongStdio: true, skipPublishingChecks: true, testResults: 'target/surefire-reports/*.xml'
+
+            }
+        }
+        stage('testFunction') {
             steps {
                 sh 'echo test'
             }
         }
+
+        //将项目打成war并归档,将配置文件目录存入stash
+        stage('package') {
+            steps {
+                sh '''#!/bin/sh
+                    ####maven编译部署#####
+                    mvn clean package -U
+                    ##处理结果包
+                    old_version_all=\$(find . -iname "\${project_name}.java"| xargs sed -nr 's/^[^0-9]*\\"(([0-9]+\\.)*[0-9]+.*-[0-9]+)\\".*;/\\1/p\')
+                    echo "old_version_all \$old_version_all"
+                    echo "project_name \$project_name"
+                    dir_name=\${project_name}"-"\$old_version_all
+                    echo "dir_name \$dir_name"
+                    cd target
+                    mkdir \$dir_name
+                    cp *.war \$dir_name
+                    zip -r "\$dir_name.zip" \$dir_name
+                '''
+            }
+        }
         stage('version add') {
             when {
+                //版本号自动添加逻辑需同时符合下列触发条件:
+                //1. 不能在master分支触发
+                //2. 有任意浏览器页面资源文件修改
+                //3. 不包含[项目名.java]文件的修改
                 allOf {
                     not {
                         branch 'master'
@@ -53,10 +86,9 @@
                     }
                 }
             }
-            steps{
-                echo "todo add version"
+            steps {
+                versionAddTest("${project_name}","${GIT_CREDENTIALS_ID}","${url}","${GIT_BRANCH}")
             }
-
         }
         stage('deploy') {
             when { branch 'master' }
diff --git a/gitflow-installer.sh b/gitflow-installer.sh
new file mode 100755
index 0000000..76a1f4f
--- /dev/null
+++ b/gitflow-installer.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+
+# git-flow make-less installer for *nix systems, by Rick Osborne
+# Based on the git-flow core Makefile:
+# http://github.com/petervanderdoes/gitflow-avh/blob/master/Makefile
+
+# Licensed under the same restrictions as git-flow:
+# http://github.com/petervanderdoes/gitflow-avh/blob/develop/LICENSE
+
+# Updated for the fork at petervanderdoes
+
+usage() {
+	echo "Usage: [environment] gitflow-installer.sh [install|uninstall] [stable|develop|version] [tag]"
+	echo "Environment:"
+	echo "   PREFIX=$PREFIX"
+	echo "   REPO_HOME=$REPO_HOME"
+	echo "   REPO_NAME=$REPO_NAME"
+	exit 1
+}
+
+# Does this need to be smarter for each host OS?
+if [ -z "$PREFIX" ] ; then
+	PREFIX="/usr/local"
+fi
+
+if [ -z "$REPO_NAME" ] ; then
+	REPO_NAME="gitflow"
+fi
+
+if [ -z "$REPO_HOME" ] ; then
+	REPO_HOME="https://github.com/petervanderdoes/gitflow-avh.git"
+fi
+
+EXEC_PREFIX="$PREFIX"
+BINDIR="$EXEC_PREFIX/bin"
+DATAROOTDIR="$PREFIX/share"
+DOCDIR="$DATAROOTDIR/doc/gitflow"
+
+EXEC_FILES="git-flow"
+SCRIPT_FILES="git-flow-init git-flow-feature git-flow-bugfix git-flow-hotfix git-flow-release git-flow-support git-flow-version gitflow-common gitflow-shFlags git-flow-config"
+HOOK_FILES="$REPO_NAME/hooks/*"
+
+
+echo "### git-flow no-make installer ###"
+
+case "$1" in
+uninstall)
+	echo "Uninstalling git-flow from $PREFIX"
+	if [ -d "$BINDIR" ] ; then
+		for script_file in $SCRIPT_FILES $EXEC_FILES ; do
+			echo "rm -vf $BINDIR/$script_file"
+			rm -vf "$BINDIR/$script_file"
+		done
+		rm -rf "$DOCDIR"
+	else
+		echo "The '$BINDIR' directory was not found."
+	fi
+	exit
+	;;
+help)
+	usage
+	exit
+	;;
+install)
+	if [ -z $2 ]; then
+		usage
+		exit
+	fi
+	echo "Installing git-flow to $BINDIR"
+	if [ -d "$REPO_NAME" -a -d "$REPO_NAME/.git" ] ; then
+		echo "Using existing repo: $REPO_NAME"
+	else
+		echo "Cloning repo from GitHub to $REPO_NAME"
+		git clone "$REPO_HOME" "$REPO_NAME"
+	fi
+	cd "$REPO_NAME"
+	git pull
+	cd "$OLDPWD"
+	case "$2" in
+	stable)
+		cd "$REPO_NAME"
+		git checkout master
+		cd "$OLDPWD"
+		;;
+	develop)
+		cd "$REPO_NAME"
+		git checkout develop
+		cd "$OLDPWD"
+		;;
+	version)
+		cd "$REPO_NAME"
+		git checkout tags/$3
+		cd "$OLDPWD"
+		;;		
+	*)
+		usage
+		exit
+		;;
+	esac
+	install -v -d -m 0755 "$PREFIX/bin"
+	install -v -d -m 0755 "$DOCDIR/hooks"
+	for exec_file in $EXEC_FILES ; do
+		install -v -m 0755 "$REPO_NAME/$exec_file" "$BINDIR"
+	done
+	for script_file in $SCRIPT_FILES ; do
+		install -v -m 0644 "$REPO_NAME/$script_file" "$BINDIR"
+	done
+	for hook_file in $HOOK_FILES ; do
+		install -v -m 0644 "$hook_file"  "$DOCDIR/hooks"
+	done
+	exit
+	;;
+*)
+	usage
+	exit
+	;;
+esac
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..d13d285
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.hbbohua</groupId>
+    <artifactId>git_study</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <packaging>war</packaging>
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.13</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.13</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+        <!--当前项目版本号-->
+        <revision>1.9.0-SNAPSHOT</revision>
+        <maven.deploy.skip>true</maven.deploy.skip>
+    </properties>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <testFailureIgnore>true</testFailureIgnore>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file
diff --git a/src/main/java/git_study.java b/src/main/java/git_study.java
new file mode 100644
index 0000000..d39c45c
--- /dev/null
+++ b/src/main/java/git_study.java
@@ -0,0 +1,18 @@
+/**
+ * 测试项目<br>
+ */
+public class git_study {
+    /**
+     * 保证每次打包发现场部署时增长(目前仅增长末位 +1)
+     */
+    String version = "1.9.0-SNAPSHOT-1";
+
+    /**
+     * 获取版本号。可用于前端资源引用版本化,解决浏览器缓存问题。
+     *
+     * @return 版本号
+     */
+    public String getVersion() {
+        return version;
+    }
+}
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..1babcc8
--- /dev/null
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,10 @@
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd" >
+
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+         version="3.0">
+</web-app>
diff --git a/src/test/java/com/hbbohua/gitStudy/HelloWorldTest.java b/src/test/java/com/hbbohua/gitStudy/HelloWorldTest.java
new file mode 100644
index 0000000..cfbb761
--- /dev/null
+++ b/src/test/java/com/hbbohua/gitStudy/HelloWorldTest.java
@@ -0,0 +1,10 @@
+package com.hbbohua.gitStudy;
+
+import org.junit.Test;
+
+public class HelloWorldTest {
+    @Test
+    public void test1(){
+        System.out.println("hello test....");
+    }
+}
diff --git a/test.js b/test.js
index 194e2b0..e69de29 100644
--- a/test.js
+++ b/test.js
@@ -1,13 +0,0 @@
-test.fsdf
-1
-
-hotfix_version1_0_2
-bug:detail
-
-merge:fast-forward
- 12
-
-gittest.fsdf
-
-feature1
-123
\ No newline at end of file

--
Gitblit v1.9.1