在本地代理上使用Azure Pipeline或GitHub Actions进行CI/CD

73次阅读
没有评论

问题描述

源代码位于他们的服务器上,他们没有批准将其放在云端。他们目前没有无缝的CI/CD流程。他们想知道是否可以使用Azure Pipeline代理或其他本地代理来构建他们的代码,并且只将构建产物导出到云端,然后继续进行CD流程。他们将应用部署在Azure上,但不部署源代码。他希望获得一个适用于他们情况的好的CI/CD解决方案。

解决方案

请注意以下操作可能因工具更新或版本变更而略有不同。

方案1:使用Azure Pipeline代理

Azure DevOps提供了Azure Pipeline代理,可以在本地构建和部署流程中使用。以下是在使用Azure Pipeline代理进行CI/CD的步骤:

  1. 设置Azure Pipeline代理:在Azure DevOps中,创建一个新的Agent Pool,并将代理主机添加到该池中。代理主机可以是您的本地服务器。这样,您就可以在代理主机上执行构建和发布任务。

  2. 创建Pipeline:在Azure DevOps中,创建一个新的CI/CD管道。在管道配置中,选择适当的代码源(如GitHub或Azure Repos)并指定构建和发布任务。

  3. 配置代理连接:在管道配置中,为构建和发布任务指定使用之前设置的Azure Pipeline代理。这将确保任务在本地代理主机上运行。

  4. 构建和发布:根据需要配置构建和发布任务。确保在构建任务中生成所需的构建产物,并在发布任务中指定将构建产物导出到云端的方式(如上传至Azure存储)。

方案2:使用GitHub Actions本地代理

GitHub Actions允许您使用自定义的执行器(Runner)在本地构建和部署流程中使用。以下是使用GitHub Actions本地代理进行CI/CD的步骤:

  1. 设置自定义执行器:在您的本地服务器上创建一个自定义的执行器实例。您可以按照GitHub官方文档的指导,在服务器上运行必要的命令来设置执行器。执行器将连接到GitHub Actions并执行您的构建和部署任务。

  2. 配置Workflow:在您的代码仓库中创建一个新的Workflow文件(如.github/workflows/main.yml)。在Workflow文件中,配置构建和部署任务,并指定使用之前设置的自定义执行器。

  3. 构建和发布任务:根据您的需求,在Workflow文件中编写构建和发布任务。确保在构建任务中生成构建产物,并在发布任务中指定将构建产物导出到云端的方式(如GitHub Release)。

注意事项和建议

  • 在使用本地代理进行CI/CD时,确保您的本地服务器具有足够的计算资源和网络连接,以支持构建和部署任务。
  • 如果您使用的是Azure服务,您可以考虑Azure DevOps的完整集成,以获取更多内置功能和便捷性。
  • 在选择构建产物导出方式时,考虑到安全性和效率,选择适合您情况的云存储或发布方法。

示例代码片段:使用GitHub Actions本地执行器的Workflow配置

以下是一个简化的Workflow配置示例,演示如何在GitHub Actions中使用本地执行器进行CI/CD:

name: CI/CD with Local Runner

on: [push]

jobs:
  build-and-deploy:
    runs-on: self-hosted
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up custom runner
        run: ./setup-runner.sh # 设置本地执行器

      - name: Build
        run: ./build.sh # 执行构建任务

      - name: Deploy
        run: ./deploy.sh # 执行部署任务

在上述示例中,self-hosted代表使用自定义的执行器,setup-runner.sh是设置执行器的脚本,build.shdeploy.sh分别是构建和部署任务的脚本。

通过以上方案,您可以实现在本地构建和部署流程中使用Azure Pipeline代理或GitHub Actions本地执行器,从而避免将源代码放在云端,只导出构建产物到云端进行CD流程。根据您的具体情况和需求,选择适合您的CI/CD方案。

正文完