coding 自动化部署

coding 自动化部署

  • 服务器配置
    • 服务器 环境下载
    • Jenkins
    • 验证
  • 构建设置
    • 关联仓库
    • 构建节点
    • 设置触发规则
  • 流水线脚本

服务器配置

服务器 环境下载

文档
coding 自动化部署_第1张图片

Jenkins

**Windows:**  进入 `C:/` 目录,创建 `codingci/tools` 目录。在其中下载 jenkins.war 、jenkins_home.zip 文件,并在 `tools/` 目录解压 jenkins_home.zip 文件。
 
**Linux:**  进入 `/root/` 目录,创建 `codingci/tools` 目录。在其中下载 jenkins.war 、jenkins_home.zip 文件,并在 `tools/` 目录解压 jenkins_home.zip 文件。
 
**macOS:** 进入 `~/` 目录,创建 `codingci/tools` 目录。在其中下载 jenkins.war 、jenkins_home.zip 文件,并在 `tools/` 目录解压 jenkins_home.zip 文件。

安装好需要的环境之后 接入节点
coding 自动化部署_第2张图片
coding 自动化部署_第3张图片
复制命令在服务器上执行

验证

qci_worker version

在这里插入图片描述
coding 自动化部署_第4张图片

构建设置

coding 自动化部署_第5张图片
根据自己需求选
coding 自动化部署_第6张图片
我选的 自定义
coding 自动化部署_第7张图片
选择自己项目的地址类型 也可以导入到coding 代码仓库里关联上
coding 自动化部署_第8张图片

关联仓库

coding 自动化部署_第9张图片

在这里插入图片描述
coding 自动化部署_第10张图片

构建节点

coding 自动化部署_第11张图片

设置触发规则

coding 自动化部署_第12张图片
coding 自动化部署_第13张图片
自己看着配

流水线脚本

pipeline {
  agent any
  stages {
    stage('检出') {
      steps {
        checkout([
          $class: 'GitSCM',
          branches: [[name: GIT_BUILD_REF]],
          userRemoteConfigs: [[
            url: GIT_REPO_URL,
            credentialsId: CREDENTIALS_ID
          ]]])
        }
      }
      stage('定义运行中变量') {
        steps {
          script {
            echo "构建计划名称:$CCI_JOB_NAME"
            env.REMOTE_HOST="部署的服务器"
            echo "远程部署HOST:${REMOTE_HOST}"
            env.REMOTE_PORT="部署服务器的端口号"
            echo "远程部署PORT:${REMOTE_PORT}"
            env.REMOTE_USERNAME="用户名"
            env.REMOTE_PASSWORD="密码"
            env.cusversionall=sh(returnStdout: true, script: 'date +%Y%m%d%H%M%S').trim()
            echo "当前时间:${cusversionall}"
            env.REMOTE_PATH="部署地址"
            echo "远程部署路径:${REMOTE_PATH}"
            env.PROJECT_PATH=sh(returnStdout: true, script: 'pwd').trim()
            echo "项目路径:${PROJECT_PATH}"
            env.TAR_NAME="build${cusversionall}.tar.gz"
            echo "部署包:${TAR_NAME}"
          }

        }
      }
      stage('设置版本') {
        steps {
          sh 'echo "VERSION=dev-${CI_BUILD_NUMBER}" >> .env.dev'
        }
      }
      stage('NPM Build') {
        steps {
          sh 'echo "开始安装依赖" && npm i --registry http://mirrors.cloud.tencent.com/npm/'
          sh 'echo "开始build 模块" && npm run build:dev'
          sh 'pwd && ls'
        }
      }
      stage('build压缩') {
        steps {
          sh 'echo "开始打包buil.tar.gz" && cd dist && tar czvf ${TAR_NAME} ./*'
        }
      }
      stage('部署') {
        steps {
          sh 'echo "构建完成,开始部署"'
          useCustomStepPlugin(key: 'SYSTEM:ssh_command', version: 'latest', params: [port:'${REMOTE_PORT}',username:'${REMOTE_USERNAME}',ssh_type:'sftp_upload',ipaddr:'${REMOTE_HOST}',password:'${REMOTE_PASSWORD}',remotepath:'${REMOTE_PATH}/${TAR_NAME}',localpath:'${PROJECT_PATH}/dist/${TAR_NAME}',sshcommands:''])
          useCustomStepPlugin(key: 'SYSTEM:ssh_cmd', version: 'latest', params: [cmd:'sshCommand',ip:'${REMOTE_HOST}',port:'${REMOTE_PORT}',username:'${REMOTE_USERNAME}',password:'${REMOTE_PASSWORD}',parameter:'tar zvxf ${REMOTE_PATH}/${TAR_NAME}  -C ${REMOTE_PATH}/;rm -rf ${REMOTE_PATH}/${TAR_NAME}'])
        }
      }
    }
  }

你可能感兴趣的:(jenkins,自动化,策略模式,运维)