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

安阳做网站的公司网站建设开发软件教程

安阳做网站的公司,网站建设开发软件教程,廊坊专业网站网站,企业网站网络推广什么是 CI 持续集成 通过自动化的流程和工具,提高软件开发的效率、质量和交付速度。 持续集成是开发团队通过将代码的不同部分集成到共享存储库中,并频繁地进行构建和测试,以确保代码的一致性和稳定性。 概念 在现在的开发模式中&#x…

什么是 CI

持续集成

通过自动化的流程和工具,提高软件开发的效率、质量和交付速度。

持续集成是开发团队通过将代码的不同部分集成到共享存储库中,并频繁地进行构建和测试,以确保代码的一致性和稳定性。

概念

在现在的开发模式中,一般的项目,协同开发是离不开的,这就涉及到多个开发人员编写处理自己负责的功能模块或者某些开发人员共同负责一个模块。于是,通过版本控制系统可以将各个开发人员的代码集成在该共享存储库里,在存储库里,每个开发人员根据需求的不同来创建对应的分支,在完成需求后,每个人都需要提交合并将开发分支代码集成在一起,这就需要解决代码冲突,并且如何除了code review之外如何确保这些更改对应用没有产生影响,一旦提交请求合并到主分支,自动化构建工具就会根据流程自动编译构建安装应用,并执行单元测试框架的自动化测试来校验提交的修改。

CI 主要有三部分组成

1.版本控制系统 如 git

2.自动化构建工具 如 Jenkins

3.单元测试框架 如 JUnit Jcoco

什么是 CD

持续交付

持续交付建立在持续集成的基础上,通过自动化的流程确保软件可以随时随地进行部署。

概念

这时,持续交付后的代码已经在主分支上了,这处于某个版本的待发布的状态,随时可以将开发环境的功能部署到生产环境中(部署到生成环境前还需要在测试环境性能测试、回归测试、自动化测试、人工测试等),运行脚本构建打包应用,通过自动化部署工具部署到生产环境运行应用,监控生产环境指标,如出现问题和错误,可以触发手动或自动回滚,如系统正常,则定期回顾,收集反馈,优化,并持续改进。

CD 主要有三部分组成

1.自动化部署工具 如 docker

2.环境变量控制工具

3.持续监控和反馈

好处

减少集成问题

提高代码质量

提高开发效率

快速交付到生产环境

降低风险

降低发布成本

支持持续改进

GitHub Action

采用CI/CD可以通过自动化流程和工具自动帮你构建应用、测试应用、部署应用,将你的应用交给流程工具来管理,做到自动触发、验证、部署等功能,从而减省人工成本、提高交付速度,在敏捷开发、DevOps中扮演着重要的角色。

GitHub Action正是这样一个实现持续集成交付的自动化流程工具,是由GitHub提供的一个组件。你可以通过YAML文件的配置定义工作流程以构建执行CI/CD流水线,并可以触发不同事件时(如代码提交push、Pull Request、schedule)自动执行这些工作流程。

工作流(Workflows)

工作流是GitHub Actions执行任务的基本单位,你可以为Git上不同的事件(如push、pull、request等)定义不同的工作流,以响应操作代码的变更。

任务(Jobs)

工作流程由一个或多个任务组成,每个任务运行在独立的虚拟环境中。任务可以是构建、测试、部署等操作。

步骤(Steps)

任务由多个步骤组成,每个步骤执行一个操作。一个步骤可以是运行命令、使用某个预定义的操作,或者调用自定义脚本。

举例

假如我们对项目中其中一个服务做了修改,添加了某些功能,完成任务后,我们在本地分支通过Git提交代码到Github项目仓库下的dev分支(这里直接本地提交到测试分支,省去测试环境测试的流程),并请求合并到master分支,这时,我们希望在合并之前先对该模块进行构建,运行测试来校验代码质量与验证代码是否出错,确保代码的基本功能在集成后仍然有效,测试通过后,提交到打包部署分支bdeploy来自动将模块打包成一个容器镜像推送到容器镜像仓库,并将docker-compose文件拷贝到远程生产服务器执行部署。

name: compileon:pull_request:paths: #当有 pull request,且文件路径包含 Java 文件或者当前的工作流配置文件时触发。- '**.java'- .github/workflows/compile.yml
jobs:compile: #任务名称runs-on: ubuntu-latesttimeout-minutes: 30steps:- name: Checkout codeuses: actions/checkout@v3 #actions/checkout@v3 是 GitHub Actions 中一个常用的操作(Action),用于从存储库中检出代码。@v3 是指定该 Action 的版本号。在这里,v3 表示使用的是版本 3。- name: Set up Javauses: actions/setup-java@v3 #actions/setup-java@v3 操作被用于设置 Java 运行环境with:java-version: '11' # 指定所需的 Java 版本distribution: 'temurin' #'temurin' 表示使用 Temurin(先前称为 AdoptOpenJDK) 的发行版。Temurin 提供了免费的、社区驱动的 OpenJDK 发行版。- name: Build with Mavenrun: mvn clean install- name: Run JUnit testrun: mvn test

GitHub Action 示例 自己写的

我自己写的一份

# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.name: Java CI with Mavenon:push:branches: [ "main" ]pull_request:branches: [ "main" ]jobs:build:# 在linux上跑 使用的环境是ubunturuns-on: ubuntu-lateststeps:- uses: actions/checkout@v4- name: Set up JDK 17uses: actions/setup-java@v4with:java-version: '17'distribution: 'temurin'cache: maven# 打包项目- name: Build with Mavenrun: mvn -B package --file pom.xml# 执行单元测试#      - name: Run Tests#        run: mvn test# 检查依赖- name: Update dependency graphuses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6# 代码静态检查- name: Code Static Analysisrun: |mvn checkstyle:check mvn pmd:check        mvn spotbugs:check # 代码覆盖率检查- name: Code Coveragerun: mvn jacoco:report # 生成 JaCoCo 覆盖率报告、

每次提交后都会进行 跑一个 持续集成的流程

并且给出报告

参考文章

深入理解CI/CD:构建、测试和部署的完整流程_cicd自动化部署流程-CSDN博客

http://www.dtcms.com/a/486381.html

相关文章:

  • php做网站优点ui设计职业培训机构
  • 【ADS-1】【python基础-2】基本语法与数据结构(列表、字典、集合)
  • 简单的网站源码娱乐网站后缀是什么
  • C# 基于halcon的视觉工作流-章46-不匀面划痕
  • 一个手机的奇幻之旅(手机在基站间的切换)
  • Android thermal (4)_cooling device(上)
  • JavaEE初阶——TCP/IP协议栈:从原理到实战
  • 建设网站要买服务器徐闻网站建设公司
  • 我想网上做网站怎么做卖东西的网站
  • 用于汽车雷达应用的步进频率PMCW波形——论文阅读
  • 使用 python-docx 和 difflib 对比 Word 文档
  • 食品电子商务网站建设规划书开发网站的好处
  • 找人做的网站怎么运行精神堡垒设计
  • 开源 Linux 服务器与中间件(一)基本介绍
  • 开源 Linux 服务器与中间件(二)嵌入式Linux服务器和中间件
  • 公司建设一个网站有什么好处国外网站建设现状图分析
  • 绿色 网站 源码个人建网站怎么赚钱
  • 定时器的学习(二)
  • SpringBoot模特兼职网站zu3n3(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • windows开发中使用flutter开发鸿蒙
  • calibre LVS 跑不起来 就将setup 的LVS Option connect下的 connect all nets by name 打开。
  • 向RAGFlow中上传文档到对应的知识库
  • 网站后台发邮件建设网站都需要哪些内容
  • 惠州网站建设 英语外贸论坛有哪些?
  • 【学习笔记10】C++模板编程深度学习(下):可变参数模板与完美转发核心技术
  • 华为盘古 Ultra-MoE-718B-V1.1 正式开放下载!
  • 【OpenHarmony】AI引擎模块架构
  • 为什么选php语言做网站江苏网站建设网络推广
  • 数据结构算法学习:LeetCode热题100-链表篇(上)(相交链表、反转链表、回文链表、环形链表、环形链表 II)
  • STC亮相欧洲区块链大会,碳资产RWA全球化战略迈出关键一步