GIT+JENKINS 自动化备忘
- 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'
}
}
}