Github Actions入门 & Vscode 插件实时查看Github Actions运行日志

简介: CICD系列

GitHub Actions

用过Gitlab的同学基本上都了解过Gitlab持续集成与持续部署,Gitlab CICD是通过自管理的一些Runner按照声明式的的配置清单实现持续集成的自动化任务,利用Github Actions可以自动化管理、构建、部署托管在Github上的代码,当然你可以用它自动化管理和部署你的博客,无需认为干预,也可以利用Actions帮你拉取一些国内拉不到的镜像等,功能有了,至于怎么使用就看个人了,前面我写了几篇关于Gitlab CICD的实践文章以及在Kubernetes上如何使用Gitlab CICD,大家有兴趣的可以前来审校:

在使用Github Actions的时候,虽然原理和使用方式,但是依旧存在不同的概念关键词,下面简单的介绍一下:

Runner

与Gtilab CICD类似,Gitlab Actions也是在一个运行有Github Actions runner application的runner服务器上执行实现定义好的workflow. 同样如果你需要不同的操作系统或者硬件配置需求,你也可以自托管Github的runner,这些可以在Gitlab Action的文档中找到

所以github中的一些列指定都是在Runner中完成的,runner就是github action的执行环境。

Workflows

workflows是github中声明配置的一个自动化过程,与gitlab中的.gitlab-ci.yml一样,有一个或者多个job组成,通过事件驱动构建流程

Jobs

jobs是一系待需要执行的指令的集合,由多个steps组成,可以理解要实现某个目标需要操作的指令集,与gitlab中的stage类似

steps

step是github actions中执行的任务的单元,是job中运行命令的独立任务单元,github社区中有不少别人贡献出来的action,这些都是完成一类任务的指令集合体,所以你可以在steps中直接引用这些action,也可以自己去写命令,同样的,job中的没个step都运行相同的Runner上执行指令,所以他们之间的数据是可以共享的

events

github action是一个事件驱动型的自动化工具,因此在定义workflow的时候,可以灵活的通过on指定事件的类型(如pull,pull_request,tags,branches等)去完成相对应的任务

运行个Demo🌰

  1. 创建一个空的github代码仓库
  2. 在代码仓库里面创建.github/workflows目录
  3. 创建一个superlinter.yml文件
name: Super-Linter # 定义workflows的名称

# Run this workflow every time a new commit pushed to your repository
on: push # 监听触发的事件

jobs: # 定义job块
  # Set the job key. The key is displayed as the job name
  # when a job name is not provided
  super-lint:
    # Name the Job
    name: Lint code base
    # 指定任务运行的服务器环境
    runs-on: ubuntu-latest

    steps:
        # 拉取代码
      # Checks out a copy of your repository on the ubuntu-latest machine
      - name: Checkout code
        uses: actions/checkout@v2 # 此处使用github社区的action

      # Runs the Super-Linter action
      - name: Run Super-Linter
        uses: github/super-linter@v3
        env:
          DEFAULT_BRANCH: main
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      
      - name: Install tools # 此处使用自己的
        run: apt-get update && apt-get install -y curl && curl cip.cc

然后在Github上查看一下运行的状态

GithubAction-Super-Linter运行的状态

Super-Linter执行日志

从这里看其实和Gitlab在运行CICD的时候是差不多一样的,大家也可以尝试一下,同时在编写workflows的时候,我使用的是VScode编辑器,下载GithubAction插件,会有智能提示,推荐大家试试,点击下面的每个steps,都会显示对应的日志信息。

显示workflows运行日志

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
自然语言处理 API C++
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
SmartVscode插件深度解析:自然语言控制VS Code的革命性工具及其开源框架App-Controller
1955 1
阿里通义推出SmartVscode插件,自然语言控制VS Code,轻松开发应用,核心技术开源!
|
5月前
|
Ubuntu 网络安全 PHP
如何使用vscode的Docker插件管理ubuntu 拉取服务器的镜像以及创建容器
本测试镜像旨在记录使用vscode的Docker插件拉取病创建Dockerfile,以及拉取镜像。
|
C语言 C++
VScode怎么实现c的运行,这里只讲述一些细节
第一步要设置信任模式,否则你后面搞什么都没有用
152 1
|
11月前
|
人工智能 IDE 编译器
idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡
idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡
2544 15
idea如何使用AI编程提升效率-在IntelliJ IDEA 中安装 GitHub Copilot 插件的步骤-卓伊凡
|
9月前
|
JavaScript 前端开发 程序员
甚至用不了五分钟就能学会vscode插件开发
本文介绍了VSCode插件的开发流程,从创建项目到最终发布。首先通过安装`yo`和`generator-code`脚手架工具初始化项目,选择JavaScript语言配置基础信息。接着,在`extension.js`中实现业务逻辑,例如将中文“变量”替换为“var”。通过F5进入调试模式验证功能。完成后使用`vsce`工具进行打包,解决可能遇到的版本不兼容或README文档问题。最后生成`.vsix`文件,可通过VSCode的“从VSIX安装”加载插件,实现开发闭环。进一步可将插件发布至官方市场供更多开发者使用。
|
11月前
|
人工智能 自然语言处理 前端开发
通义灵码插件在VSCode中的运用
借助通义灵码插件在VSCode构建新闻网,实现效率与智能的融合。VSCode作为前端开发的“瑞士军刀”,提供实时预览、智能辅助和高效管理功能;通义灵码插件通过自然语言交互生成代码,简化复杂任务并优化代码质量。两者结合形成从设计到部署的高效闭环,大幅减少基础编码时间,降低开发门槛,助力开发者聚焦业务逻辑与创新。
|
11月前
|
人工智能 小程序 程序员
【视频测评 DEMO 参考】VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
874 8
|
开发工具 C++ git
利用VS Code提升开发效率的五大插件推荐
本文推荐了五款能显著提升开发效率的VS Code插件:ESLint用于代码质量和风格检查;Prettier自动格式化代码;GitLens增强Git功能;Live Server提供前端实时预览;Docker支持容器管理。
|
自然语言处理 JavaScript 开发者
通义灵码插件:VSCode 的智能编程助手
通义灵码插件:VSCode 的智能编程助手
10302 5