当前位置: 首页 > news >正文

微网站和app的区别/湖南网络优化服务

微网站和app的区别,湖南网络优化服务,工作中最常用的45个excel技巧大全,网站前台设计方案(直播已结束, 关注公众号回复可获取回放)JenkinsActive参数概述Postman调试GitLab接口实践:动态获取Git项目标签/分支实践: JenkinsCoreAPI获取凭据参数化构建在使用Pipeline项目时一般都是参数化构建作业,在Jenkins的…

(直播已结束, 关注公众号回复可获取回放)

  • JenkinsActive参数概述

  • Postman调试GitLab接口

  • 实践:动态获取Git项目标签/分支

  • 实践:  JenkinsCoreAPI获取凭据

参数化构建

在使用Pipeline项目时一般都是参数化构建作业,在Jenkins的构建时,可能需要使用参数类型有复选框,单选按钮,多选值等输入的情景。

ActiveChoice参数插件安装

转到→管理Jenkins→选择管理插件→选择可用选项卡,然后搜索主动选择插件。安装并重新启动Jenkins,以正确安装插件。我的已经安装好,因此在“已安装”标签中列出。

使用Groovy脚本,生成动态参数选项值列表。参数可以动态更新,呈现为组合框,复选框,单选按钮或丰富的HTMLUI窗口小部件。

这里的`return` 语句是什么意思呢?

选项参数的值其实是一个Array数组, 所以这里最终运行的函数返回要对应上。

当作业中已定义参数的值发生更改时,可以动态更新。这里可以使用IF进行条件判断,输出相关的值。

这里使用的是IF进行判断, 判断buildType这个参数的值是否匹配某个条件,然后返回对应的选项值。场景: 根据用户选择的构建工具不同,自动填充对应的构建命令。

调试GitLab接口

进入GitLab官方文档,找到API资源文档。 找到分支的接口;

可以使用curl或者postman进行调试

curl --request POST \
--header “PRIVATE-TOKEN: <your_access_token>” \  
"https://gitlab.example.com/api/v4/projects/5/repository/branches?branch=newbranch&ref=master"

实践: 动态获取GitLab项目分支和标签

未优化:

import groovy.json.JsonSlurper
JsonSlurper slurper = new JsonSlurper()if (refType.equals("branch")){try {String apiServer = "https://gitlab.com/api/v4/"//String data = "branch=zeyang&ref=master";URL url = new URL(apiServer + "projects/18803707/repository/branches");HttpURLConnection con = (HttpURLConnection) url.openConnection();con.setRequestMethod("GET");con.setRequestProperty("PRIVATE-TOKEN", "DTyTRQ-ky1wZJ-zSSKRW");con.setDoOutput(true);// if (data != ""){//    con.getOutputStream().write(data.getBytes("UTF-8"));// }con.getInputStream();responseCode = con.getResponseCode()println(responseCode)response = slurper.parse(con.getInputStream())//println(slurper.parse(response))// return slurper.parse(response)refs = []//println(response.getClass())for(item in response) {refs.add(item.name)}return refs}catch(Exception e) {return []}
}if (refType.equals("tag")){try {String apiServer = "https://gitlab.com/api/v4/"//String data = "branch=zeyang&ref=master";URL url = new URL(apiServer + "projects/18803707/repository/tags");HttpURLConnection con = (HttpURLConnection) url.openConnection();con.setRequestMethod("GET");con.setRequestProperty("PRIVATE-TOKEN", "DTyTRQ-ky1wZJ-zSSKRW");con.setDoOutput(true);// if (data != ""){//    con.getOutputStream().write(data.getBytes("UTF-8"));// }con.getInputStream();responseCode = con.getResponseCode()println(responseCode)response = slurper.parse(con.getInputStream())//println(slurper.parse(response))// return slurper.parse(response)refs = []//println(response.getClass())for(item in response) {refs.add(item.name)}return refs}catch(Exception e) {return []}
}

优化后:

  • 将凭据存储在Jenkins,并使用API获取;

  • 封装一个统一的HTTP请求函数;

import groovy.json.JsonSlurper
import java.util.ArrayList
import jenkins.*
import jenkins.model.* 
import hudson.*
import hudson.model.*// 获取Jenkins凭据
def GetJenkinsCredentials(id, type){def jenkinsCredentials = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(com.cloudbees.plugins.credentials.Credentials.class,Jenkins.instance,null,null);for (creds in jenkinsCredentials) {if(creds.id == id){if (type == "secret"){return creds.secret} }}
}// 发送请求
def HttpReq(data, method, apiUrl ){JsonSlurper slurper = new JsonSlurper()String gitlabToken = GetJenkinsCredentials("bba72a35-6857-4be6-9e71-cb6eed4db403/update", "secret")try {String apiServer = "https://gitlab.com/api/v4/"//String data = "branch=zeyang&ref=master";URL url = new URL(apiServer + apiUrl);HttpURLConnection con = (HttpURLConnection) url.openConnection();con.setRequestMethod(method);con.setRequestProperty("PRIVATE-TOKEN", gitlabToken);con.setDoOutput(true);if (data != ""){con.getOutputStream().write(data.getBytes("UTF-8"));}con.getInputStream();responseCode = con.getResponseCode()//println(responseCode)response = con.getInputStream()//println(slurper.parse(response))return slurper.parse(response)}catch(Exception e) {return []}
}
// 获取项目的标签列表
def GetTagList(){refs = []ArrayList response = HttpReq("", "GET", "projects/18803707/repository/tags" )//println(response.getClass())for(item in response) {refs.add(item.name)}return refs
}// 获取项目的分支列表
def GetBranchList(type){refs = []ArrayList response = HttpReq("", "GET", "projects/18803707/repository/branches" )//println(response.getClass())for(item in response) {refs.add(item.name)}return refs
}if (refType.equals("tag")){refs = GetTagList()return refs
}if (refType.equals("branch")){refs = GetBranchList()return refs
}

最终效果:

关于我们

专注于企业级DevOps运维开发技术实践分享,主要以新Linux运维技术、DevOps技术课程为主。丰富的一线实战经验,课程追求实用性获得多数学员认可。课程内容均来源于企业应用,在这里既学习技术又能获取热门技能,欢迎您的到来!

辛苦 帮转发,点个再看吧,前进的动力...

http://www.jmfq.cn/news/5235913.html

相关文章:

  • 网站建设风险怎样规避/淘宝客推广
  • 做淘宝客的网站怎么备案/时事政治2023最新热点事件
  • 常州微信网站建设方案/seo优化公司
  • 网站开发工程师能在家工作吗/自己怎么优化网站排名
  • 网站用什么空间好/广州网络推广哪家好
  • 济宁城乡建设局网站/企业网站建设费用
  • 塘厦镇仿做网站/谷歌广告投放
  • 做网站ssl证书必须要吗/最新国际足球世界排名
  • 做游戏网站多钱/aso优化技巧大aso技巧
  • 亳州建设网站公司/网络营销包括哪些
  • 网站建设去哪里找客户/游戏优化大师
  • 百度站点提交工具/g3云推广靠谱吗
  • 京东联盟怎么做网站/我是站长网
  • 苏州专业网站建设的公司/重庆网站网络推广
  • 长沙专业外贸建站公司/最新军事新闻事件今天
  • 网站前台怎么套用织梦后台/如何在网上推广产品
  • 成都做网站做的好的公司/全球十大搜索引擎入口
  • 宁波门户网站建设/百度推广客户端怎么登陆
  • 推特登陆 网站建设/seo链接优化
  • 深圳企业推广网站/湖南企业seo优化
  • iis网站无法启动/广告推广营销网站
  • wordpress的坑/seo综合查询站长工具关键词
  • 展台展厅设计/7个湖北seo网站推广策略
  • 怎么样建设网站/免费网页制作模板
  • 新媒体网站建设十大的经典成功案例/如何免费注册网站
  • 免费网站建设培训/seo收索引擎优化
  • 如何做招聘网站分析/百度推广网站
  • 河南省豫建设计院网站/化妆品网络营销策划方案
  • 做网站添加支付功能要多少钱/免费下载b站视频软件
  • 浙江省通信管理局 网站备案 管理部门/十大跨境电商erp排名