Github原生CI/CD,初尝Github Actions

Github 原生 CI/CD,初尝 Github Actions

Intro

Github 目前已经推出了自己的 CICD 服务 —— Github Actions,而且比微软的 Azure DevOps Pipelines 对开发者来说更友好,使用起来更好用。

Github Actions 核心概念

总体看下来感觉是从 Azure Pipelines 迁移过来的东西,有许多概念和 Azure Pipelines 是类似的,如果你之前用过 azure pipelines,应该很容易上手

  • Runner 用来跑 cicd build 的服务器

    • Github Hosted Runner Github 官方提供的 Runner
    • Self-Hosted Runner 用自己的服务器作为 Runner
  • Workflow 定义 CI/CD 的流程,需要执行哪些操作,需要做什么
  • Workflow 定义 workflow 的配置文件,通常放在项目根目录下的 .github/workflows 文件夹下
  • Workflow Run 每一次 CI/CD build
  • Event 触发 ci/cd build 的事件,如 push/issue/pr
  • Job 由一系列 Step 组成,Job 可以并行执行也可以串行执行,每一个 Job 都是一个新的环境
  • Step 对应 Job 执行的每一个步骤
  • Action 对应 Step 里执行的可复用的操作

Github Actions 配置示例

来看一个 Github Actions 的 dotnet 配置:

name: dotnetcore # workflow name

on: [push] # event trigger,什么事件触发 build

jobs:
  build:
    runs-on: ubuntu-latest # 指定 runner,使用 Github 提供的 runner

    steps:
    - uses: actions/[email protected] # checkout
    - name: Setup .NET Core # 设置 dotnet core 环境
      uses: actions/[email protected]
      with:
        dotnet-version: 3.0.100
    - name: dotnet info # 输出 dotnet -info,查看 dotnet 版本信息
      run: dotnet --info
    - name: build
      run: bash build.sh # 在 bash 中运行 build 脚本

Github 示例: https://github.com/WeihanLi/WeihanLi.Common/blob/dev/.github/workflows/dotnetcore.yml

More

徽章:

Sample:

[![Github Build Status](https://github.com/WeihanLi/WeihanLi.Common/workflows/dotnetcore/badge.svg?branch=dev)](https://github.com/WeihanLi/WeihanLi.Common/actions?query=workflow%3Adotnetcore+branch%3Adev)

https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_NAME>/badge.svg

https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_NAME>/badge.svg?branch=<branch-name>

Summary

总体来说,用起来还可以,但是感觉还是不如 travis-ci 以及 azure pipelines成熟,比如说常用 ci 都支持的 commit message 里包含 [skip ci] 的不触发 build,目前 Github Action 还是不支持的,不过毕竟是新推出来的产品,相信以后一定会越来越好哒,想尝试的小伙伴们可以实践一下

Reference

原文地址:https://www.cnblogs.com/weihanli/p/11980499.html

时间: 2024-10-09 12:37:40

Github原生CI/CD,初尝Github Actions的相关文章

Gitlab的CI/CD初尝试

初衷:今天公司的前端和测试人员吵起来了.原因是测试埋怨前端人员把Bug的状态更改为已解决,结果代码根本没提交,而前端人员埋怨测试测的太频繁了,需要打几个环境的包不方便.又要改东西又要频繁打包费时间.凡正各有各的理由,就是不想办法解决问题. 哎,没办法,为了解决这种问题,我打算看看Gitlab的CI集成,如果能弄上这个那么开发只管提代码就行了,会自动构建环境. 我这也是现学现卖,今天照着官网和查资料,刚把基本的流程跑通,中间还是费了点时间的,这里记录下 gitlab ci/cd快速入门 按照官网上

利用Travis CI 让你的github项目持续构建

Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜.目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建.对于做开源项目或者github的使用者,如果你的项目还没有加入Travis CI构建队列,那么我真的想对你说out了. 下面是本人的构建历史: 搭建Travis CI build,需要你有个github账号和github项目: 1:用gith

现代软件工程第02次作业————初谈GitHub使用详解以及设计

现代软件工程第二次作业 --初谈GitHub使用详解以及设计 一.目标任务(图文并茂): 1.参照http://www.cnblogs.com/xinz/p/3803109.html的第一题 A.每人创建一个GitHub账号 B.组长创建一个Project C.添加组员进入Project中的Collaborators,并添加zykgnyue为Collaborator. 2.每人创建一个HelloWorld项目. A.练习使用git基本命令add/commit/push/pull/fetch/cl

iHealth基于Docker的DevOps CI/CD实践

本文由1月31日晚iHealth运维技术负责人郭拓在Rancher官方技术交流群内所做分享的内容整理而成,分享了iHealth从最初的服务器端直接部署,到现在实现全自动CI/CD的实践经验. 作者简介 郭拓,北京爱和健康科技有限公司(iHealth).负责公司基础服务构建与研发流程定制,曾供职于乐视.21vianet,高龄攻城狮活跃在一线研发工作中,乐此不疲. 前言 相信我,一切事情的发生都是赶鸭子上架,没有例外.人类所有伟大的变革都是迫不得已,可又是那么顺其自然.比如容器(docker)技术的

Kubernetes如何加速UCloud内部代码部署的CI/CD流程

UCloud内部长期使用 Gitlab 来管理代码.虽然Gitlab作为一套开源平台已很优秀,但我们对于其能为CI/CD提供的敏捷性并不十分满意,内部实践中的代码发布周期仍需按天计算.为此,我们打造了一个基于Kubernetes的内部容器服务平台(名为KUN),用于托管内部服务,并将Gitlab对接到KUN平台,从而借助Kubernetes的云原生优势,获得更好的CI/CD效果.这套系统运行一年内,Gitlab的Pipeline一共触发了994次,执行了约20000+次Job,在测试环境和正式环

Serverless 实战 —— Funcraft + OSS + ROS 进行 CI/CD

前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费.函数计算更多信息参考. Funcraft:Funcraft 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算.API 网关.日志服务等资源.它通过一个资源配置文件(templa

Jenkins + k8s 实现企业 CI/CD 落地

一.概述 1.1.环境介绍 我们使用的是 AWS 的 EC2 来搭建我们的集群,安装方式使用 kubeadm 来进行安装,如果使用二进制安装,可以参考我相关文档. 系统版本:ubuntu 16.04 k8s 版本:1.17.1 docker 版本:18.06-ce 1.2.流程图 1.3.集群配置 名称 配置 内网IP 外网IP k8s-master 2核4GB 172.31.20.184 54.226.118.74 k8s-node1 2核4GB 172.31.27.69 52.90.221.

如何使用Docker实现PHP命令行程序的CI/CD?

本文标签: Docker PHP命令行程序的CI/CD Codeship 内容要点: - 使用Jet设置环境并在本地运行测试 - 配置CodeshipPro每次新代码提交时,自动运行测试 - 上一步的测试通过后,自动将更新部署到服务器 持续集成 应用程序和测试套件已经在本地运行,下一步要做的是建立一些持续集成系统.虽然可以设置服务器来执行此操作,但这个过程工作量略大,因此推荐一个像CodeshipPro的服务. 使用Jet进行本地测试 代码提交到Codeship测试前,建议先安装其本地版本的持续

如何使用GitLab和Rancher构建CI/CD流水线 – Part 2

这是我们使用GitLab和Rancher构建CI/CD流水线系列教程的第二部分.第一部分的内容介绍了如何部署.配置和确保GitLab在Rancher的运行.这一部分中,我们将介绍如何使用GitLab CI Multi-Runner构建容器,以及如何使用GitLab容器registry配置项目.除此之外,我们还将涉及如何用GitLab CI建立容器并部署到Rancher上. 使用GitLab CI Multi-Runner构建容器 GitLab CI是用于持续集成和持续交付的强大工具.它需要和Ra