CICD:github actions 实现CICD

在当今的软件开发世界中,持续集成与持续部署(CI/CD)是一种常见的实践,它能帮助开发者更高效地构建、测试和发布软件。

GitHub Actions是GitHub平台提供的一种基于YAML配置的自动化工作流服务,可以在项目的构建、测试和发布等环节实现高度的自定义和控制。下面,我们将通过一些步骤和示例来展示如何使用GitHub Actions实现CICD。

持续集成解决什么问题

  • 提高软件质量
  • 效率迭代
  • 便捷部署
  • 快速交付、便于管理

持续集成(CI)

集成,就是一些孤立的事物或元素通过某种方式集中在一起,产生联系,从而构建一个有机整体的过程。

持续,就是指长期的对项目代码进行集成。

持续集成是指将所有开发者工作副本每天多次合并到主干的做法。

持续集成强调开发人员提交了新代码之后,立刻进行构建、测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

持续部署(CD)

对于一个成熟的CICD管到来说,最后的阶段就是持续部署。作为持续交付——自动将生产就绪型构建版本发不到代码存储库的延伸。

持续集成组成要素

一个最小化的持续集成系统需要包含以下几个要素:

  • 版本管理系统
  • 构建脚本和工具
  • CI服务器

一、创建GitHub Actions

首先,你需要在你的GitHub项目中创建一个新的Actions文件,通常这个文件名为main.yml。这个文件定义了一个工作流,工作流是由一系列的步骤组成的。

以下是一个简单的示例,它演示了如何使用GitHub Actions在每次push到master分支时触发一个构建和部署流程:

name: CI/CD Pipeline
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    name: Build and Test
    steps:
      - name: Checkout Code
        uses: actions/checkout@v2
      - name: Set up JDK
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
      - name: Build and Test
        run: mvn clean install

二、配置触发器

on部分,你可以配置触发器来启动工作流。上面的例子中,我们在push到master分支或pull request修改master分支时触发工作流。

三、定义工作流

jobs部分,我们定义了一个名为build的工作流,它包含三个步骤:Checkout Code、Set up JDK和Build and Test。这个工作流会先检出代码,然后设置JDK版本,最后运行构建和测试命令。

四、部署

部署的部分通常会涉及到更多的步骤,例如将构建的结果部署到一个预生产环境或者生产环境。这通常涉及到创建Docker镜像,将镜像推送到Docker registry,并创建一个Kubernetes deployment。以下是一个简单的部署示例:

	# Sample workflow for building and deploying a Hugo site to GitHub Pages
	name: Deploy wisdomwindy site pages
	
	on:
	  # Runs on pushes targeting the default branch
	  push:
	    branches: [$default_branch]
	
	  # Allows you to run this workflow manually from the Actions tab
	  workflow_dispatch:
	
	jobs:
	  # Build job
	  build:
	    runs-on: ubuntu-latest
	    steps:
	      # 检出代码
	      - name: checkout
	        uses: actions/checkout@v3
	        with:
	          fetch-depth: 0
	      - name: Git Configuration
	        run: |
	          git config --global core.quotePath false
	          git config --global core.autocrlf false
	          git config --global core.safecrlf true
	          git config --global core.ignorecase false  
	      # 安装 PNPM
	      - name: setup PNPM
	        uses: pnpm/action-setup@v2
	        with:
	          version: latest
	      # 安装 node
	      - name: Setup Node
	        uses: actions/setup-node@v3
	        with:
	          node-version: 18.18.1
	          registry-url: https://registry.npmjs.org
	          cache: pnpm
	      # 安装依赖
	      - name: Install dependencies
	        run: pnpm i --frozen-lockfile
	      # 打包
	      - name: Build
	        run: pnpm build
	      # 部署
	      - name: Deploy GitHub Pages
	        uses:  JamesIves/github-pages-deploy-action@v4
	        with:
	          branch: pages
	          folder: docs

如果出现The deploy step encountered an error: The process '/usr/bin/git' failed with错误,在当前项目仓库的settings页面中点击actions,选中general,在Fork pull request workflows from outside collaborators配置项中选中第一个,在Workflow permissions配置项中选中第一个,且在yml配置文件中不能再次设置权限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端御书房

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值