H5静态资源包推送阿里云oss

一、Jenkins服务器添加配置

  1. 通过WinSCP连接访问Jenkins所在服务器
  2. 将以下文件复制到某个目录下,然后在当前目录启动控制台
    文件下载地址(linux版):https://help.aliyun.com/zh/oss/developer-reference/install-ossutil#concept-303829
  3. 接着执行以下指令
chmod +x ossutil64
mv ossutil64 /usr/local/bin/ossutil

二、项目自动化构建脚本

在auto-deploy(自动化构建脚本)目录下添加prod目录

  • build.sh
#!/bin/bash
echo $PATH
node -v
npm -v
pnpm -v
rm -rf ./node_modules
pnpm i
pnpm run build:release

upload.sh

echo $PATH
cd build
rm -rf projectName.tar.gz
tar -zcvf projectName.tar.gz *
cp projectName.tar.gz projectName-$(date -d today +"%Y.%m.%d")-release.tar.gz
/usr/local/bin/ossutil config -e oss-cn-shanghai.aliyuncs.com -i LTAxxxxxxxxxxxMAD -k Pc7xxxxxxxxxxxXzM
/usr/local/bin/ossutil cp -f projectName-$(date -d today +"%Y.%m.%d")-release.tar.gz oss://xxx-xx
  1. 添加Jenkins流水线脚本
import java.text.SimpleDateFormat;
import java.util.Date;

def now_date = new Date().format('yyyyMMdd');

def notifyStarted() {
    emailext (
        subject: "部署任务开始 '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
        body: """<p>开始'${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
        <p>部署项目: 项目名称</p>
        <p>部署环境: ${deploy_env}</p>
        <p>部署分支/Tag: ${git_tag}</p>
        <p>Check console output at &QUOT;<a href='${env.BUILD_URL}'>${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>&QUOT;</p>""",
        // recipientProviders: [[$class: 'DevelopersRecipientProvider']]
        to: "${recepients}"
    )
}

def notifySuccessful() {
    emailext (
        subject: "部署任务成功: '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
        body: """<p>成功'${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
        <p>部署项目: photovoltaics</p>
        <p>部署环境: ${deploy_env}</p>
        <p>部署分支/Tag: ${git_tag}</p>
        <p>Check console output at &QUOT;<a href='${env.BUILD_URL}'>${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>&QUOT;</p>""",
        to: "${recepients}"
    )
}

def notifyFailed() {
    emailext(
        subject: "部署任务失败: '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
      body: """<p>失败 '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
      <p>部署项目: photovoltaics</p>
        <p>部署环境: ${deploy_env}</p>
        <p>部署分支/Tag: ${git_tag}</p>
        <p>Check console output at &QUOT;<a href='${env.BUILD_URL}'>${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>&QUOT;</p>""",
      to: "${recepients}"
        )
    
}

pipeline {
    agent any
    tools {
        nodejs 'NodeJS_16.14.0'
    }
    
    stages {
        stage('拉取代码') {
            steps {
                echo "开始拉取代码"
                checkout(
                    [
                        $class: 'GitSCM', 
                        branches: [[name: '$git_tag']],  
                        doGenerateSubmoduleConfigurations: false, 
                        extensions: [], 
                        submoduleCfg: [], 
                        userRemoteConfigs: [
                            [
                                credentialsId: 'xxxxx-xxxx-xxxx-xxxx-xxxxx', 
                                url: 'http://xxx.xx/projectNmae.git']]])
                echo "拉取代码结束"
            }
        }
        stage('处理依赖及构建') {
            steps {
                
                script{
                    def projects = "projectName"
                    echo "${projects} 开始构建"
                    sh "bash ${env.WORKSPACE}/auto-deploy/${deploy_env}/build.sh"
                    echo "${projects} 构建结束"
                }
                
            }
        }
        stage('上传阿里云oss'){
            steps {
                echo "开始上传"
                script{
                    def projects = params.deploy_projects
                    def deploy_servers = params.deploy_servers
                    echo "${projects} 开始上传"
                    sh "bash ${env.WORKSPACE}/auto-deploy/${deploy_env}/upload.sh"
                    echo "${projects} 上传结束"
                }
                echo "上传完成"
            }
        }
    }

     post {
        failure {
            notifyFailed()
        }
        
        success {
            notifySuccessful()
        }
    }
}
  1. 查看是否推送成功
ossutil ls oss://xxx-xx/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值