Jenkins-小记

Jenkins - 项目配置(前端)

构建 - Execute shell

bash 复制代码
yarn config set registry https://registry.npm.taobao.org -g
source /etc/profile
case $Project in
   PC)
   echo "Project:$Project"
   path="${WORKSPACE}/pc"
   cd $path
   yarn install
   yarn run build
   \cp -rf dist /usr/Web/xxxx/pc
   tar -zcvf ./html.tar.gz ./dist/*
   \cp html.tar.gz ${WORKSPACE}/new
   cd ${WORKSPACE}
   tar -zcvf ./new.tar.gz ./new/*
   ;;
  H5)
    echo "Project:$Project"
    path="${WORKSPACE}/h5"	
    cd $path
    yarn install
    yarn run build
    \cp -rf dist /usr/Web/xxxx/h5
    tar -zcvf ./h5.tar.gz ./dist/*
    \cp h5.tar.gz ${WORKSPACE}/new
    cd ${WORKSPACE}
    tar -zcvf ./new.tar.gz ./new/*
    exit
  ;;
esac

构建后操作 - Send build artifacts over SSH

Exec command
bash 复制代码
cd /usr/XXXX/Web/bak
mkdir "$(date +%Y-%m-%d-%H-%M)" && mv -f ../html "$(date +%Y-%m-%d-%H-%M)"
cd /usr/XXXX/Web
tar -zxvf new.tar.gz
cd /usr/XXXX/Web/new
tar -zxvf h5.tar.gz
mv dist h5
tar -zxvf html.tar.gz
mv dist html
mv -f h5 html
mv -f html /usr/XXXX/Web
#保留5个备份
ReservedNum=5  
FileDir=/usr/XXXX/Web/bak
date=$(date "+%Y-%m-%d-%H-%M")
cd $FileDir   
FileNum=$(ls -l | grep '^d' | wc -l)   
while(( $FileNum > $ReservedNum))
do
    OldFile=$(ls -rt | head -1)         
    echo  $date "Delete File:"$OldFile
    rm -rf $FileDir/$OldFile
    let "FileNum--"
done

Jenkins - 项目配置(后端-java)

1.General-描述

xxx系统后端发版

2.源码管理

Repository URL:
ruby 复制代码
http://127.0.0.1:8080/xxxx/java-service/xxx-system.git  
Credentials
Branches to build

指定分支

3.构建触发器

不设置

4.构建环境

选择Add timestamps to the Console Output

4.1 Pre Steps

不设置

4.2 Build
4.2.1 Root POM

pom.xml

4.2.2 Goals and options
ini 复制代码
clean package -Dmaven.test.skip=true
4.2.3 Post Steps

选择 Run only if build succeeds

5. 构建后操作

5.1Send build artifacts over SSH

SSH Server 下拉选择服务

Transfers Transfer Set Source files

perl 复制代码
xxxx-system-starter/target/xxxx-system-starter-1.0.0-SNAPSHOT.jar

Remote directory

bash 复制代码
/usr/XXXX/java

Exec command

bash 复制代码
cd /usr/xxxx/java/bak
mkdir "$(date +%Y-%m-%d-%H-%M)" && mv -f /usr/xxxx/java/xxxx-system-starter-1.0.0-SNAPSHOT.jar "$(date +%Y-%m-%d-%H-%M)"
cd /usr/xxxx/java/
cp -r xxxx-system-starter/target/xxxx-system-starter-1.0.0-SNAPSHOT.jar /usr/xxxx/java
rm -rf xxxx-system-starter
/usr/xxxx/script/xxxx-system.sh
#保留5个备份
ReservedNum=5  
FileDir=/usr/xxxx/java/bak
date=$(date "+%Y%m%d-%H%M%S")
cd $FileDir   
FileNum=$(ls -l | grep '^d' | wc -l)   
while(( $FileNum > $ReservedNum))
do
    OldFile=$(ls -rt | head -1)         
    echo  $date "Delete File:"$OldFile
    rm -rf $FileDir/$OldFile
    let "FileNum--"
done

Jenkins - Maven Settings

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
	<localRepository>/usr/repository</localRepository>
	<interactiveMode>true</interactiveMode>
    <offline>false</offline>
    <pluginGroups>
        <pluginGroup>org.mortbay.jetty</pluginGroup>
        <pluginGroup>org.jenkins-ci.tools</pluginGroup>
    </pluginGroups>
	
	<!--配置权限,使用默认用户-->
	<servers>
		<server>
			<id>nexus-releases</id>
			<username>deployment</username>
			<password>deployment123</password>
		</server>
		<server> 
			<id>nexus-snapshots</id>
			<username>deployment</username>
			<password>deployment123</password>
		</server>
	</servers>

  <mirrors>
 	 <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>

	<profiles>
		<profile>
		   <id>XXXX</id>
			    <activation>
                    <activeByDefault>false</activeByDefault>
                    <jdk>1.8</jdk>
                </activation>
			    <repositories>
					<!-- 私有库地址-->
				    <repository>
						<id>nexus</id>
						
						<releases>
							<enabled>true</enabled>
						</releases>
						<snapshots>
							<enabled>true</enabled>
						</snapshots>
					</repository>
				</repositories>      
				<pluginRepositories>
					<!--插件库地址-->
					<pluginRepository>
						<id>nexus</id>
						
						<releases>
							<enabled>true</enabled>
						</releases>
						<snapshots>
							<enabled>true</enabled>
					   </snapshots>
					</pluginRepository>
				</pluginRepositories>
			</profile>
	</profiles>
	
	<!--激活profile-->
	<activeProfiles>
		<activeProfile>XXXX</activeProfile>
	</activeProfiles>
	
</settings>
相关推荐
Chengbei119 分钟前
云安全漏洞挖掘SKILL、一站式云漏洞挖掘工具,支持S3爆破、IMDS探测、K8s检测与AK/SK权限利用
前端·人工智能·网络安全·云原生·容器·kubernetes·系统安全
不简说37 分钟前
JS 代码技巧 vol.9 — 20 个设计模式在真实项目里的应用
前端·javascript·github
CoderLiu42 分钟前
Agent 工程的下一层:为什么「把流程写成图」还不够,还需要 Graph Engineering
前端·人工智能·后端
勇往直前plus1 小时前
Vue3(篇三) Element Plus
前端·javascript·typescript·vue
爱勇宝1 小时前
《道德经》第 8 章:真正高级的能力,像水一样成事
前端·后端·程序员
Revolution611 小时前
数组本身没有 map,为什么还能直接调用:原型链怎样查找属性
前端·javascript·面试
bonechips1 小时前
RAG实战(一):EPUB 加载、文本切割与向量入库
前端·数据库
swipe1 小时前
10|(前端转全栈)库存扣减为什么最容易出事故?SKU、并发与原子更新
前端·后端·全栈
cdcdhj1 小时前
vue3中的watchEffect()监听,什么时候监听,什么时候清理,什么时候停止
前端·javascript·vue.js
huabuyu1 小时前
几百 MB 的文件为什么等几分钟才能打开?文件分片下载与渐进预览原理
前端·javascript