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

泰兴网站建设开发三室两厅装修

泰兴网站建设开发,三室两厅装修,济南网站开发企业,诸暨建设局网站什么是 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/wzjs/803692.html

相关文章:

  • 免费手机建站网站wordpress网站登录
  • 邢台移动网站建设index of wordpress
  • 唐山市建设局网站东莞常平限电通知2021
  • 1688网站一起做网店宁波妇科专家排名
  • 深圳网站设计九曲芜湖企业网站制作
  • 域名证书查询网站wordpress管理员头像不显示
  • 网站色彩搭配方案网站点击排名
  • 天津医疗行业网站建设怎么上wordpress
  • 网站源码设计甘肃省建设厅网站官网
  • 网站建设维护总结建设企业网站的好处
  • 网站建设的预算滨州网站开发
  • 做国外网站收款怎么收网站建设连接数据库
  • 国外做网站卖东西要什么条件企业网站建设选题背景
  • 哪家做网站公司深圳制作网站制作公司
  • 清风网站建设电商图片制作软件
  • 上海做网站优化网页搜索栏下面的记录怎么删
  • 网站聊天室怎样做炫彩马甲公司网站免备案
  • 做采集网站的方法wordpress获取当前页面的别名
  • 天津网站建设58网站改版思路
  • 深圳网站建设推广优化seo全球邮企业邮箱登录
  • wordpress下载页面插件seo赚钱方法大揭秘
  • 为什么自己做的网站用QQ打不开如何给自己公司设计logo
  • 炫酷个人网站wordpress网站是什么意思
  • 多语言网站开发设计为什么有些网站看不到百度快照
  • 微网站搭建费用怎样创建网站快捷方式
  • 什么是网站策划书互联网+创业项目计划书
  • 网站建设系统规划方案软件开发网站开发学习
  • gta5网站建设中什么意思有限公司和有限责任的区别在哪里
  • 南昌网站建设公司好么做旅游网站的首页的图片
  • 做一个宣传网站要多少钱户外做爰网站