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>
相关推荐
对空六课1 分钟前
两个统计平台数据不同:用同一时间窗和事件样本做差异定位
大数据·前端·网络·数据库
lpfasd1238 小时前
node-sass 停止维护!老项目迁移 Dart Sass 完整教程
前端·rust·sass
Data analyse45610 小时前
rnweb 回放数据量太大怎么办?分片存储与断点续传的实现思路
前端·网络·算法·数据分析
xiaogai_gai11 小时前
金蝶收料通知单查询策略实战教程:从源系统拉取到中间层落地的完整路径
java·前端·数据库
环境栈笔记11 小时前
指纹浏览器 WebRTC 怎么设置?从 ICE 候选、代理出口到功能验证
前端·人工智能·后端·自动化
赵大仁12 小时前
官网性能优化实战:LCP 3.2s → 2.1s、CLS 0.107 → 0,以及被我推翻的 6 个判断
前端·性能优化·cls·lcp·core web vitals
xiancai_xianyu12 小时前
Text2SQL落地生产库前,SQL要过哪三道闸
前端·数据库·sql·sql注入·text2sql·ai agent开发·企业级ai框架
小羊没烦恼!12 小时前
T-SQL查询进阶--理解SQL SERVER中的分区表
服务器·开发语言·前端·javascript·html
史瓦辛格12 小时前
给 DeepSeek Harness 写费用插件:把「这次会话花了多少钱」算准
前端·deepseek
星光不问赶路人12 小时前
Vue 3 + TypeScript 中 enum 的使用实践
前端·vue.js