发布于 2026-01-06 0 阅读
0

了解如何在 CI/CD 流水线中运行 GitHub Actions

了解如何在 CI/CD 流水线中运行 GitHub Actions

GitHub Action 是一段可自定义的代码,开发者可以使用它来自动化 GitHub 代码库中的任务和工作流程。Action 由一个或多个步骤组成,可以执行各种任务,例如构建代码、运行测试、部署应用程序或发送通知。Action 可以由各种事件触发,例如拉取请求或推送到特定分支,并且可以配置为在不同的操作系统和环境中运行。GitHub 提供了一个预构建 Action 库,开发者可以使用或自定义这些 Action 以满足自身需求,也可以创建自己的 Action 并与 GitHub 社区共享。借助 Action,开发者可以自动化重复性任务、提高代码质量并加快开发工作流程。

Harness 被认为是持续交付领域的领导者,今天我将向您展示如何在 Harness CI 模块中运行 GitHub actions 作为步骤。

先决条件

教程

注册 Harness CI 模块,创建项目并添加详细信息。
创建项目

如果你愿意,可以邀请合作者参与你的项目。
邀请合作者

选择持续集成(CI)模块。
CI模块

接下来,它将指导您创建您的第一个流程。
第一管道

连接你的仓库。连接你 fork 的那个仓库,也就是示例仓库
连接仓库

由于我们的应用程序代码位于 GitHub 上,请选择“GitHub”。
选择 GitHub

将您的 GitHub 帐户与您的 GitHub 个人访问令牌关联。如果您不知道如何创建 GitHub 个人访问令牌,请参阅此官方文档
图片描述

请确保连接成功。

接下来,选择您的存储库。
选择您的仓库

由于这是一个 Go 应用程序存储库,我们将选择“Go”,然后可以看到一个默认的 YAML 文件。
默认 YAML

保存并继续,您将进入管道工作室,它应该看起来像这样。
Pipeline Studio

在“执行”选项卡下,您会看到“构建 Go 应用”。点击它,即可显示该步骤的详细信息。
构建 Go 应用

让我们用自己的命令替换命令字段。我们只是将mod init命令添加到现有的命令列表中。
modinit 命令

应用更改,保存并运行管道。
运行管道

你应该会看到流水线成功执行:)
成功的渠道

添加并运行 GitHub Actions

现在让我们来定制我们的管道,添加 GitHub Actions。该怎么做呢?

你应该在顶部看到“Pipeline Studio”字样,以及“VISUAL”和“YAML”字样。点击“YAML”。
点击 yaml

您将看到我们管道的 YAML 文件。
YAML管道

接下来,我们将通过添加 GitHub 操作来修改此 YAML 文件。
启用 YAML 编辑选项。
编辑 YAML
确认 YAML 编辑

让我们添加 YAML 文件来配置 Golang。YAML 文件如下所示。

            steps:
              - step:
                  type: Action
                  name: setup golang
                  identifier: setup_go
                  spec:
                    uses: actions/setup-go@v3
                    with:
                      go-version: "1.17"
Enter fullscreen mode Exit fullscreen mode

让我们将上述 YAML 代码添加到我们的管道 YAML 中。
添加 Go YAML

现在,从顶部选择“可视化”,即可查看管道的视觉效果。
视觉的

您应该能在可视化管道工作室中看到我们添加的 YAML 代码段“setup Golang”。
设置开始

同样地,我们可以通过切换到 YAML 选项卡来修改/编辑管道 YAML 文件。接下来,我们将 Trivy 安全漏洞扫描添加到我们的应用程序仓库中,从而扩展我们的步骤。

下面显示的是用于添加 Trivy 扫描的 YAML 代码片段:

- step:
     identifier: trivy
     name: Run Trivy vulnerability scanner
     type: Plugin
     spec:
         connectorRef: dockerhub
         image: plugins/github-actions
         privileged: true
         settings:
             uses: aquasecurity/trivy-action@master
             with:
                 image-ref: drone/git
                 format: table
                 exit-code: "1"
                 ignore-unfixed: "true"
                 vuln-type: os,library
                 severity: CRITICAL,HIGH,LOW
             env:
                 CI: true
Enter fullscreen mode Exit fullscreen mode

Trivy应用程序仓库

当您再次切换回可视化模式时,您应该会看到我们的管道以及新增的“简单安全漏洞扫描”步骤。
Trivy 扫描已添加

保存并运行管道。
保存并运行管道

你应该会看到流水线执行完毕,但随后会失败。别担心,失败的原因是应用程序代码库存在漏洞。
扫描结果

您可以根据需要,通过拖放操作重新排列执行步骤的顺序。

拖放

这样,您可以通过在 Harness 中添加各种功能轻松构建管道。您可以在GitHub Actions 市场中查看各种可用的操作。

如何选择:Harness 还是 GitHub Actions?

Harness CI 和 GitHub Actions 都是功能强大的工具,可用于自动化持续集成和部署工作流程。然而,两者之间存在一些关键差异,这些差异使 Harness CI 脱颖而出,并可能使其成为某些开发团队的更佳选择。

首先,Harness CI 提供的功能比 GitHub Actions 更全面。GitHub Actions 是自动化简单任务的优秀工具,而 Harness CI 则专为处理涉及多个阶段、环境和流水线的复杂工作流而设计。它提供了一个可视化流水线编辑器,使开发人员能够快速轻松地创建和管理工作流,并支持与各种常用工具和平台的集成。

Harness CI 的另一优势在于其对安全性和合规性的重视。Harness CI 提供强大的安全功能,例如多因素身份验证、基于角色的访问控制和敏感数据加密。它还支持符合各种法规,例如SOC 2

最后,Harness CI 还提供企业级支持和服务,包括全天候客户支持、入职培训和培训。对于需要高度定制化和协助的大型开发团队或组织而言,这种级别的支持至关重要。

总而言之,虽然 Harness CI 和 GitHub actions 都是用于自动化 CI/CD 工作流程的强大工具,但 Harness CI 提供了一套更全面的功能、更好的安全性和合规性以及企业级支持,因此对于某些开发团队来说,它是一个更好的选择。

文章来源:https://dev.to/pavanbelagatti/learn-how-to-run-github-actions-in-your-cicd-pipeline-4p8k