zoukankan      html  css  js  c++  java
  • jenkins发布dotnet core项目

    使用上传压缩包的方式,将dotnet core项目上传到jenkins,并自动创建linux系统服务,开机自启

    所需插件

    效果如下:

    使用参数化构建


    构建使用的shell脚本如下

    #!/bin/bash
    # 项目部署根目录
    rootpath="/Code/HNSZ/Server"
    
    # 项目运行目录
    path="${rootpath}/${Module}/"
    
    # 所要运行项目的启动文件名称
    file="${path}RG.${Module}.Web.dll"
    
    # 生成的linux服务文件名称
    servicename="rg_${Module,,}.service"
    
    # linux服务所保存的路径
    servicepath="/etc/systemd/system/$servicename"
    
    # 生成linux 服务文件
    echo "[Unit]" > $servicepath
    echo "Description=dotnet core 微服务" >> $servicepath
    echo "" >> $servicepath
    echo "[Service]" >> $servicepath
    echo "WorkingDirectory=$path" >> $servicepath
    echo "ExecStart=/usr/bin/dotnet $file" >> $servicepath
    echo "Restart=always" >> $servicepath
    echo "# Restart service after 10 seconds if the dotnet service crashes:" >> $servicepath
    echo "RestartSec=10" >> $servicepath
    echo "KillSignal=SIGINT" >> $servicepath
    echo "SyslogIdentifier=RG_${Module}_Web" >> $servicepath
    echo "User=root" >> $servicepath
    echo "Environment=ASPNETCORE_ENVIRONMENT=Production" >> $servicepath
    echo "Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false" >> $servicepath
    echo "" >> $servicepath
    echo "[Install]" >> $servicepath
    echo "WantedBy=multi-user.target" >> $servicepath
    # 生成服务结束
    
    # 启用服务
    systemctl enable $servicename
    
    # 停止服务(防止第二次发布时,服务为启动状态)
    systemctl stop $servicename
    
    cd $rootpath
    
    # 备份原目录(第一次无备份,再次发布,先备份原目录)
    # 判断指定目录中是否有文件(目录不存在时也不影响)
    if [ "$(ls -A $path)" ]; then
        zip -q -r ${Module}_${BUILD_NUMBER}.zip $path
    else
        echo "首次部署,Directory : $path is Empty!!!"
    fi
    
    
    # 删除原目录
    rm -rf $path
    
    # 解压缩
    unzip ${WORKSPACE}/data.zip -d $path
    
    # 启动服务
    systemctl start $servicename
    
    
    
    
    
    
  • 相关阅读:
    CentOS 7基于Containerd部署Kubernetes v1.20.5
    【k8s记录】二进制安装kubernetes高可用集群全过程完整版v1.20
    前台后台$.psot交互
    $.ajax与$.post、$.get的一点区别
    layui与jQuery一起使用
    用Emmet写前端代码
    栅格布局的实现过程,容器到列的划分
    bootstrap环境
    2个爬虫
    think PHP5中,模板、控制器、JavaScript的url跳转重定向方法
  • 原文地址:https://www.cnblogs.com/qingshang/p/14012020.html
Copyright © 2011-2022 走看看