• 干了三年外包。。。忘了什么是CICD。。。


    干了三年外包。。。忘了什么是CICD。。。

    CI/CD(持续集成与持续交付) 是一种软件开发实践,它可以帮助我们更快地交付高质量的软件产品。CI/CD的核心思想是将软件开发过程中的各个阶段自动化,从而减少人工干预,提高开发效率和产品质量。本文将简要介绍CI/CD的概念、流程以及如何在实际项目中应用。

    CI/CD的基本概念:

    持续集成(Continuous Integration,简称CI):指的是在软件开发过程中,开发人员频繁地将代码集成到主干分支,以便及时发现并修复问题。持续集成的目标是确保代码的质量和稳定性。

    持续交付(Continuous Delivery,简称CD):指的是在软件开发过程中,通过自动化的方式将代码从开发环境部署到测试环境、预发布环境和生产环境,以便更快地向用户交付产品。持续交付的目标是提高软件交付的速度和可靠性。

    CI/CD的基本流程:

    1. 代码提交:开发人员将代码提交到版本控制系统(如Git)。

    2. 构建:持续集成工具(如Jenkins)监听代码仓库的变化,当有新的代码提交时,触发构建任务。构建过程包括编译代码、运行测试、生成文档等。

    3. 测试:构建完成后,运行自动化测试,确保代码的质量。

    4. 部署:如果测试通过,将代码部署到测试环境、预发布环境和生产环境。

    5. 反馈:收集用户和测试人员的反馈,对问题进行修复,然后重复上述流程。

    测试

    下面,我们通过一个简单的Python项目来演示如何使用CI/CD。假设我们有一个名为hello_world的项目,它的代码结构如下:

    hello_world/
    |-- src/
    |   |-- main.py
    |-- tests/
    |   |-- test_main.py
    |-- .gitignore
    |-- requirements.txt
    |-- setup.py
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    其中,main.py是项目的入口文件,test_main.py是用于测试的文件。我们可以使用GitHub Actions来实现CI/CD。首先,在项目根目录下创建一个名为.github/workflows的文件夹,并在其中创建一个名为cicd.yml的文件。然后,编辑cicd.yml文件,添加以下内容:

    name: CI/CD Pipeline
    
    on:
      push:
        branches:
          - main
    
    jobs:
      build:
        runs-on: ubuntu-latest
        
       steps:
        - name: Checkout code
          uses: actions/checkout@v2
    
       - name: Set up Python
          uses: actions/setup-python@v2
          with:
            python-version: 3.8
    
       - name: Install dependencies
          run: pip install -r requirements.txt
    
       - name: Run tests
          run: pytest tests/test_main.py
    
       - name: Build and publish
          run: python setup.py sdist bdist_wheel
          env:
            TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }}
            TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
    
    • 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

    这个配置文件定义了一个名为CI/CD Pipeline的工作流,它会在每次向main分支推送代码时触发。工作流包含一个名为build的任务,它会在最新的Ubuntu环境中运行。任务的步骤包括:检出代码、设置Python环境、安装依赖、运行测试、构建和发布。

    最后,我们需要在项目的setup.py文件中添加发布相关的配置:

    from setuptools import setup, find_packages
    
    setup(
        name="hello_world",
        version="0.1",
        packages=find_packages(),
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    总结

    现在,当我们向main分支推送代码时,GitHub Actions会自动执行CI/CD流程,包括构建、测试和发布。这样,我们就可以实现持续集成和持续交付,提高软件开发的效率和质量。

  • 相关阅读:
    计算机组成原理考试复习
    Python爬虫:某书平台的Authorization参数js逆向
    PostgreSQL的约束
    BasicAuth认证实现
    一文解析-通过实例讲解 Linux 内存泄漏检测方法
    JuiceFS v1.0 beta3 发布,支持 etcd、Amazon MemoryDB、Redis Cluster
    OpenCV 视频处理(关于摄像头和视频文件的读取、显示、保存等等)
    Jupyter的安装
    一举两得:研究发现常吃辣椒可延长寿命和抵御寒冷
    python>>numpy包
  • 原文地址:https://blog.csdn.net/qiaomuv/article/details/136271079