Jenkins备忘

GIT+JENKINS 自动化备忘

  1. npm create 项目后,把项目git add . 到gitea中

2.安装好Jenkins后,安装中文插件,点"新建任务" ,配置:

例子一:

pipeline {

agent any // 在任何可用的 Jenkins 节点上运行

stages { // 各个执行阶段

stage('打招呼') {

steps {

echo 'Hello Jenkins!'

echo '当前时间是:' + new Date()

}

}

stage('系统信息阶段') {

steps {

sh 'uname -a' // Linux/Unix 系统信息

sh 'java -version' // Java 版本

}

}

stage('完成阶段') {

steps {

echo '流水线执行完毕!'

}

}

}

}

例子二:

pipeline{

agent any

stages{

stage('拉取代码'){

steps{

git url: 'http://118.11.121.1:3000/zhihui/suanfa.git',branch:'main'

echo '拉取成功'

}

}

stage('查看文件'){

steps{

sh 'ls -la'

sh 'find . -name "*.c" | wc -l'

}

}

}

}

例子三:先安装nodejs20插件

pipeline {

agent any

tools{

nodejs 'NodeJS20'

}

stages {

stage('拉取代码') {

steps {

git url:'http://111.15.11.11:3000/zhihui/suanfa.git',branch:'main'

}

}

stage('设置NPM镜像'){

steps{

sh '''

清理旧的 node_modules 和 lock 文件

rm -rf node_modules package-lock.json

重新安装

npm install

如果有问题,尝试修复

npm audit fix

'''

}

}

stage('安装依赖'){

steps{

sh 'npm install'

}

}

stage('运行测试'){

steps{

sh 'npm test'

}

}

stage('打包'){

steps{

sh 'npm run build'

echo '打包完成'

}

}

}

post{

success{

echo '🎉 所有测试通过,构建成功!'

}

failure{

echo '❌ 测试失败,请检查代码!'

}

}

}

例子四:用 gitea 触发:

pipeline {

agent any

tools{

nodejs 'NodeJS20'

}

stages {

stage('代码拉取') {

steps {

git url: 'http://118.25.129.153:3000/zhihui/suanfa.git',

branch: 'main'

echo '✅ 代码拉取成功'

}

}

stage('设置NPM镜像'){

steps{

sh '''

npm config set registry https://mirrors.cloud.tencent.com/npm/

echo "当前 npm 镜像源:"

npm config get registry

'''

}

}

stage('安装依赖'){

steps{

sh 'npm install'

}

stage('执行依赖'){

steps{

sh 'npm run build'

}

}

stage('保存成果'){

steps{

archiveArtifacts artifacts: 'dist/**/*', allowEmptyArchive: true

echo '📦 构建产物已保存'

}

}

}

}

post{

success{

echo '🎉 构建成功!'

}

failure{

echo '❌ 构建失败,请检查代码!'

}

}

}

3.点"立即构建"

GITEA+JENKINES:

一、在jenkins的任务中点配置->Triggers中选:触发远程构建 ,会生成一个地址:

JENKINS_URL/job/auto-test/build?token=TOKEN_NAME 或者 /buildWithParameters?token=TOKEN_NAME
后点用户名,菜单选 Secrity ,点添加新Token ,

拼成一个AAA地址: http://user:Token@ip:3001/job/auto-test/build?token=`TOKEN_NAME`

二、在GITEA仓库右上角-> 设置 -> Web钩子 里输入:AAA地址即可实现安全触发。

三、要发布到目的地,在 jenkins 里再安装插件:Publish Over SSH

更方便的是 jenkins 服务上加挂载:

复制代码
- /mydata/docker/suanfa/www:/app/www

流水线上:

stage('部署到 Web 服务') {

steps {

echo '🚀 开始部署前端文件...'

script {

// 确保目标目录存在

sh 'mkdir -p /app/www'

// 清空旧文件

sh 'rm -rf /app/www/*'

// 复制新构建的 dist 文件到挂载目录

sh 'cp -r dist/* /app/www/'

echo '✅ 前端文件部署完成!'

// 可选:列出部署的文件以便验证

sh 'ls -la /app/www/ | head -10'

}

}

}

相关推荐
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
AI职业加油站4 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏4 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅4 天前
linux(8) 软硬链接
linux·运维·服务器
张洛闻Eren4 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
其实防守也摸鱼4 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
布裘4 天前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境
懂软件的胡子个哥4 天前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
云贝贝贝4 天前
腾讯云 TDSQL(MySQL 版)性能优化与慢查询排障实战 6 招
运维·腾讯云
Lsetea4 天前
证书没到期却报certificate has expired:OpenSSL定位中间证书与系统时间
运维·https·ssl证书·openssl·证书链