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

持续集成04--Jenkins结合Gitee创建项目

前言

        在持续集成/持续部署(CI/CD)的旅途中,Jenkins与版本控制系统的紧密集成是不可或缺的一环。本篇“持续集成03--Jenkins结合Gitee创建项目”将引导如何将Jenkins与Gitee(一个流行的Git代码托管平台)相结合,以自动化地处理代码提交后的构建、测试等流程。通过本文,将学会如何在Jenkins中配置Gitee仓库,创建并配置Jenkins项目。

1、新建项目

        进入Jenkins首页,点击新建item,输入任务名称,选择Freestyle project,点击确定。

2、项目配置

        2.1、源码配置

                2.1.1、添加远程仓库地址 

        新建成功后点击项目配置页(configure)--源码管理(Source Code Management)--Repository URL输入我们Gitee仓库地址。

                2.1.2、配置Gitee凭据

        选择git;Credentials点击添加,配置gitee凭证

        在我们复制Gitee仓库地址时有个提示:安全考虑,建议使用私人令牌;Jenkins凭证常用的有三种:账号密码、api令牌、ssh-key;Git仓库的credentials 只能选择ssh key 或者用户名密码的凭据,gitee api token的凭据只是给触发器用的;所以需要单独为git源码管理插件配置ssh key 或者用户名密码凭据,二者选其一即可。

  •         凭证:账号秘密配置

        如果不考虑安全的情况下,账号密码配置最为便捷;类型选择username with password,填写gitee的登录账号和密码进行保存

        凭证:ssh-key配置

        复制服务器git ssh-key公钥:cat /root/.ssh/id_rsa.pub,粘贴到gitee--设置--安全设置SSH公钥内

        复制服务器git ssh-key私钥:cat /root/.ssh/id_rsa;Jenkins凭证类型选择ssh,填写git账号名,勾选enter directly,将私钥粘贴到凭证内,保存

注意:如果选择ssh链接,仓库url则需要填写ssh方式

 2.1.3、指定构建分支

        分支栏为空时默认的是master分支,填写我们需要拉取的分支代码

3、构建项目

        配置完成后,点击保存,我们便可以尝试构建项目;点击build now进行项目的构建;点击构建历史--控制台输出可以查看构建进程日志;进入工作空间可以查看拉取代码详情信息

4、执行代码

        进入项目配置页--build setps--增加构建步骤--选择Execute shell,编写shell脚本,主要是安装需要的python库和运行程序;保存后,进行构建,查看日志代码执行成功

#!/bin/bash
# 安装项目所需Python库
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 运行程序入口main文件(注意main文件win环境和linux环境的区别)
python3 main_run.py

总结

        通过“持续集成03--Jenkins结合Gitee创建项目”的学习,基本成功掌握了将Jenkins与Gitee集成,实现自动化CI/CD流程的关键步骤。Jenkins与Gitee的紧密合作,不仅提高了代码提交后的处理效率,还确保了软件质量的持续监控与提升。现在,每当Gitee仓库中有新的代码提交时,我们都可以通过Jenkins构建、测试等拉取代码,为团队提供了强大的自动化支持。随着对Jenkins与Gitee集成的进一步深入,将能够探索更多高级功能,如代码质量分析、安全扫描等,以全面提升软件开发的效率与质量。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 今日安装了一下Eclipse,配置了SVN
  • WSL2 Centos7 Docker服务启动失败怎么办?
  • 单臂路由组网实验,单臂路由的定义、适用情况、作用
  • 科技云报道:将技术普惠进行到底,百度智能云云原生数据库GaiaDB来啦!
  • 【海外云手机】静态住宅IP集成解决方案
  • LeNet实验 四分类 与 四分类变为多个二分类
  • 【Python】TensorFlow介绍与实战
  • 55 、mysql的存储引擎、备份恢复以及日志备份、恢复
  • 【Vue3】响应式数据
  • RocketMQ~架构与工作流程了解
  • electron项目中实现视频下载保存到本地
  • 【深度学习】VGG-16原理及代码实现
  • 【深度学习】OCR中的Shrink操作详解
  • 【分布式事务】怎么解决分布式场景下数据一致性问题
  • Springboot 3.x - Reactive programming (2)
  • __proto__ 和 prototype的关系
  • DOM的那些事
  • flutter的key在widget list的作用以及必要性
  • gf框架之分页模块(五) - 自定义分页
  • JavaScript新鲜事·第5期
  • js
  • Mysql数据库的条件查询语句
  • MySQL主从复制读写分离及奇怪的问题
  • Python 反序列化安全问题(二)
  • Sequelize 中文文档 v4 - Getting started - 入门
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • use Google search engine
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 闭包--闭包作用之保存(一)
  • 规范化安全开发 KOA 手脚架
  • 聊一聊前端的监控
  • 推荐一个React的管理后台框架
  • 微信小程序设置上一页数据
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​zookeeper集群配置与启动
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​如何防止网络攻击?
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (2015)JS ES6 必知的十个 特性
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (C语言)字符分类函数
  • (javascript)再说document.body.scrollTop的使用问题
  • (Java入门)学生管理系统
  • (Note)C++中的继承方式
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (论文阅读40-45)图像描述1
  • (转) 深度模型优化性能 调参
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .apk文件,IIS不支持下载解决