-
Notifications
You must be signed in to change notification settings - Fork 22
/
Jenkinsfile.web
129 lines (109 loc) · 4.79 KB
/
Jenkinsfile.web
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!groovy
@Library('jenkins-shared-library@dev') _
/**
* @author 潘维吉
* @description 核心Pipeline代码 针对Web项目CI/CD的脚本
* 注意 本文件在Git位置和名称不能随便改动 配置在jenkins里
*/
// 根据不同环境项目配置不同参数
def map = [:]
// 远程服务器地址 k8s集群方式可填空或填公网代理负载IP
map.put('remote_ip', '101.200.54.165')
// 工作服务器地址 同时支持N个服务器自动化分布式部署
map.put('remote_worker_ips', [])
// 远程服务器用户名
map.put('remote_user_name', 'root')
// 代理机或跳板机外网ip用于透传部署到内网目标机器 选填 目标机器外部无法直接访问情况填写内网ip
map.put('proxy_jump_ip', ' ')
// 自定义跳板机ssh和scp访问用户名 可精细控制权限 默认root
map.put('proxy_jump_user_name', 'root')
// 自定义跳板机ssh和scp访问端口 默认22
map.put('proxy_jump_port', '22')
// 默认统一设置项目级别的分支 方便整体控制改变分支 将覆盖单独job内的设置
map.put('default_git_branch', ' ')
// 保持构建的最大个数
map.put('build_num_keep', 1)
// 容器Docker相关参数
// docker挂载映射 docker run -v 参数(格式 宿主机挂载路径:容器内目标路径) 多个用逗号,分割
map.put('docker_volume_mount', '')
// Dockerfile多阶段构建 镜像名称
map.put('docker_multistage_build_images', ' ')
// 是否上传镜像到docker容器仓库
map.put('is_push_docker_repo', false)
// docker容器镜像仓库账号信任id
map.put('docker_repo_credentials_id', '5553c9ed-5416-4bbf-b7fc-9d53ed856177')
// docker镜像仓库注册地址
map.put('docker_repo_registry', 'registry.cn-qingdao.aliyuncs.com')
// docker仓库命名空间名称
map.put('docker_repo_namespace', 'lexiang')
// K8S集群相关参数
// K8S集群部署集群访问授权账号kube.config配置信息信任ids 多集群,逗号分割 Jenkins系统管理的Manage Credentials,类型选择为“Secret file”配置
map.put('k8s_credentials_ids', ' ')
// K8S集群私有镜像仓库拉取密钥 在集群内使用kubectl create secret命令生成
map.put('k8s_image_pull_secrets', ' ')
// 项目标签或项目简称
map.put('project_tag', ' ')
// 是否是生产环境
map.put('is_prod', false)
// 是否在同一台服务器蓝绿部署或滚动部署 非k8s集群方式设置
map.put('is_same_server', true)
// 是否进行服务启动健康探测 K8S集群类型设置false
map.put('is_health_check', true)
// 是否Pipeline内脚本钉钉通知 总开关
map.put('is_ding_notice', false)
// 是否进行部署前通知
map.put('is_before_deploy_notice', false)
// 是否只通知发布变更记录
map.put('is_only_notice_change_log', false)
// 是否在生产环境发布成功后自动给Git仓库打Tag版本和生成变更记录
map.put('is_git_tag', false)
// 是否需要css预处理器sass
map.put('is_need_sass', false)
// jenkins分布式构建节点label名称 预配置在jenkins节点管理内
map.put('jenkins_node', 'master')
// 构建环境变量
map.put('nodejs', 'Node14')
// 相关信任标识
map.put('ci_git_credentials_id', '45392b97-5c21-4451-b323-bbf104f70e51')
map.put('git_credentials_id', '45392b97-5c21-4451-b323-bbf104f70e51')
map.put('ding_talk_credentials_id', 'ba0ebec7-73ad-4a26-af8b-d15c470b1328')
// OSS对象存储访问凭据配置 Jenkins系统管理的Manage Credentials,类型选择为“Secret file”配置
map.put('oss_credentials_id', ' ')
// 直连方式服务器集群自动SSH连接信息 实现CI构建机器和多台部署机之间的免密连接
map.put('ssh_hosts_id', ' ')
// 跳板机方式服务器集群自动SSH连接信息 实现CI构建机器和多台部署机之间的免密连接
map.put('proxy_jump_hosts_id', ' ')
// 服务器上部署所在的文件夹名称
map.put('deploy_folder', "my")
// Web项目NPM打包代码所在的文件夹名称
map.put('npm_package_folder', "dist")
// Web项目解压到指定目录层级
map.put('web_strip_components', 1)
// 调用核心通用Pipeline
webSharedLibrary(map)
// ---------------------------------------------------------------------------------------------------------------------
// https://github.com/DreamPWJ/jenkins-shared-library.git Jenkinsfile.web
/*
test_flutter_web
Flutter For Web项目❤️
JSON_PARAMS
{
"REPO_URL" : "https://github.com/DreamPWJ/panweiji-iot/flutter-demo.git" ,
"BRANCH_NAME" : "master" ,
"WEB_PROJECT_TYPE" : "2" ,
"PROJECT_NAME" : "flutter-demo" ,
"SHELL_PARAMS" : "flutter-demo web 8015 80 sit",
"IS_STATIC_RESOURCE" : true
}
test-unity-web
测试Unity For WebGL项目❤️
JSON_PARAMS
{
"REPO_URL" : "https://github.com/DreamPWJ/unity.git" ,
"BRANCH_NAME" : "master" ,
"WEB_PROJECT_TYPE" : "4" ,
"PROJECT_NAME" : "test-unity-web" ,
"SHELL_PARAMS" : "test-unity web 8014 80 sit",
"IS_STATIC_RESOURCE" : true
}
*/