Compare commits

...

3 Commits

1 changed files with 0 additions and 183 deletions

View File

@ -1,183 +0,0 @@
version: 2
name: 流水线zhangyang
description: ""
global:
concurrent: 1
trigger:
webhook: gitlink@1.0.0
event:
- ref: push
ruleset-operator: AND
workflow:
- ref: start
name: 开始
task: start
- ref: end
name: 结束
task: end
needs:
- shell_0
- ref: shell_0
name: shell
image: docker.jianmuhub.com/library/ubuntu:22.04
script:
- "#!/bin/bash"
- ""
- "# 配置信息(已更新为你的服务器信息)"
- 'REPO_URL="https://gitlink.org.cn/lirenqiu/gitlink_help_center.git" #
替换为你的代码仓库URL'
- LOCAL_BUILD_DIR="/tmp/your-project-build"
- WEB_ROOT="/var/www/html"
- NGINX_CONFIG="/etc/nginx/sites-available/default"
- 'REMOTE_SERVER="root@114.55.175.219" # 使用你的服务器IP'
- LOG_FILE="/var/log/frontend_deploy.log"
- ""
- "# 日志函数"
- log() {
- " local level=$1"
- " local message=$2"
- " echo \"[$(date '+%Y-%m-%d %H:%M:%S')] [$level] $message\" | tee -a
$LOG_FILE"
- "}"
- ""
- "# 错误处理函数"
- handle_error() {
- ' log "ERROR" "执行命令失败: $BASH_COMMAND"'
- ' log "ERROR" "错误代码: $?"'
- " exit 1"
- "}"
- ""
- "# 设置错误捕获"
- trap 'handle_error' ERR
- ""
- "# 检查是否以root用户运行"
- check_root() {
- " if [[ $EUID -ne 0 ]]; then"
- ' log "ERROR" "此脚本需要以root用户运行"'
- " exit 1"
- " fi"
- "}"
- ""
- "# 安装本地依赖"
- install_local_dependencies() {
- ' log "INFO" "开始安装本地依赖..."'
- " "
- " # 检测系统类型"
- " if [[ -f /etc/debian_version ]]; then"
- ' log "INFO" "检测到Debian/Ubuntu系统"'
- " apt-get update -y"
- " apt-get install -y git curl gnupg sshpass"
- " elif [[ -f /etc/redhat-release ]]; then"
- ' log "INFO" "检测到CentOS/RHEL系统"'
- " yum update -y"
- " yum install -y git curl gnupg sshpass"
- " else"
- ' log "ERROR" "不支持的操作系统"'
- " exit 1"
- " fi"
- " "
- " # 安装Node.js和Yarn"
- " curl -sL https://deb.nodesource.com/setup_16.x | bash -"
- " apt-get install -y nodejs"
- " npm install -g yarn"
- " "
- ' log "INFO" "本地依赖安装完成"'
- "}"
- ""
- "# 克隆代码并构建"
- build_project() {
- ' log "INFO" "开始克隆代码并构建项目..."'
- " "
- " # 创建构建目录"
- " mkdir -p $LOCAL_BUILD_DIR"
- " cd $LOCAL_BUILD_DIR || exit"
- " "
- " # 克隆代码"
- ' if [ -d ".git" ]; then'
- ' log "INFO" "目录非空,尝试拉取最新代码"'
- " git pull"
- " else"
- ' log "INFO" "克隆代码仓库"'
- " git clone $REPO_URL ."
- " fi"
- " "
- " # 安装项目依赖并构建"
- ' log "INFO" "安装项目依赖..."'
- " yarn install"
- " "
- ' log "INFO" "开始项目构建..."'
- " yarn build"
- " "
- ' log "INFO" "项目构建完成"'
- "}"
- ""
- "# 使用密码部署到远程服务器"
- deploy_to_remote() {
- ' log "INFO" "开始部署到远程服务器..."'
- " "
- " # 服务器密码(注意:明文存储不安全!)"
- " SERVER_PASSWORD='ppuUV7W6UtmVGk01#pd:l' # 你的服务器密码"
- " "
- " # 复制构建文件到远程服务器"
- ' log "INFO" "复制构建文件到远程服务器..."'
- ' sshpass -p "$SERVER_PASSWORD" rsync -avz --delete -e ssh
"$LOCAL_BUILD_DIR/dist/" "$REMOTE_SERVER:$WEB_ROOT/"'
- " "
- " # 在远程服务器上配置Nginx"
- ' log "INFO" "配置远程服务器Nginx..."'
- ' sshpass -p "$SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no
$REMOTE_SERVER <<EOF'
- sudo bash <<SCRIPT
- "# 确保Nginx已安装"
- if ! command -v nginx &> /dev/null; then
- " if [[ -f /etc/debian_version ]]; then"
- " apt-get update -y"
- " apt-get install -y nginx"
- " elif [[ -f /etc/redhat-release ]]; then"
- " yum update -y"
- " yum install -y nginx"
- " fi"
- fi
- ""
- "# 创建Nginx配置文件"
- cat > $NGINX_CONFIG <<NGINXCONF
- server {
- " listen 80 default_server;"
- " listen [::]:80 default_server;"
- " "
- " root $WEB_ROOT;"
- " index index.html index.htm;"
- " "
- " server_name _;"
- " "
- " location / {"
- " try_files \\$uri \\$uri/ /index.html;"
- " }"
- "}"
- NGINXCONF
- ""
- "# 测试配置并重启Nginx"
- nginx -t
- systemctl restart nginx
- systemctl enable nginx
- SCRIPT
- EOF
- " "
- ' log "INFO" "部署到远程服务器完成"'
- "}"
- ""
- "# 主函数"
- main() {
- ' log "INFO" "===== 开始前端项目部署脚本 ====="'
- " check_root"
- " install_local_dependencies"
- " build_project"
- " deploy_to_remote"
- ' log "INFO" "===== 部署完成 ====="'
- ' log "INFO" "访问 http://114.55.175.219 查看网站"'
- "}"
- ""
- main
needs:
- start