MST

星途 面试题库

面试题:Bash脚本与Jenkins集成之复杂任务编排

假设你有一个包含前端和后端的项目,前端为Vue.js,后端为Spring Boot。前端构建命令为'npm run build',构建输出目录为'dist';后端使用Gradle构建,构建命令为'./gradlew build',生成的jar包在'build/libs'目录。编写一个Bash脚本,实现在Jenkins中自动化完成以下流程:先拉取前后端代码,构建前端并将构建产物复制到后端资源目录下,然后构建后端,最后部署后端jar包到指定的服务器(假设服务器通过SSH连接,用户名是'user',IP是'192.168.1.100',部署目录为'/opt/app')。
37.1万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

# 拉取前端代码
cd /path/to/frontend
git pull origin master

# 构建前端
npm run build

# 拉取后端代码
cd /path/to/backend
git pull origin master

# 将前端构建产物复制到后端资源目录
cp -r /path/to/frontend/dist /path/to/backend/src/main/resources/static

# 构建后端
./gradlew build

# 部署后端jar包到指定服务器
scp build/libs/*.jar user@192.168.1.100:/opt/app
ssh user@192.168.1.100 "cd /opt/app && nohup java -jar $(ls -t /opt/app | head -n 1) > /dev/null 2>&1 &"

请根据实际情况替换/path/to/frontend/path/to/backend等路径。上述脚本先拉取前后端代码,构建前端并复制产物到后端,再构建后端,最后通过scp上传并在远程服务器使用ssh启动后端服务。