返回

GitHub Actions 搭建 Jenkins/CD 自动化构建链

Android

利用 GitHub Actions 实现 Jenkins/CD 自动化构建链

在当今快节奏的软件开发环境中,自动化构建和持续部署 (CD) 是至关重要的。它们能够显著提升开发效率,减少错误,确保应用程序持续保持最新状态。本文将逐步指导您如何使用 GitHub Actions 在 GitHub 上设置 Jenkins/CD 自动化构建链。

先决条件

为了成功完成本教程,您需要:

  • GitHub 帐户
  • Docker
  • 具有 root 用户权限的 Ubuntu 18.04 宿主机

步骤 1:创建 GitHub Actions 工作流

  1. 创建一个名为 .github/workflows/ci-cd.yml 的新文件。
  2. 添加以下 YAML 内容:
name: CI/CD

on:
  push:
    branches: [ main ]

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-java@v1
        with:
          java-version: '8'
      - uses: gradle/gradle-build-action@v2
        with:
          arguments: build

  deploy-to-production:
    needs: build-and-test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: docker/build-push-action@v1
        with:
          username: dockerhub-username
          password: dockerhub-password
          repository: dockerhub-repo/image-name
          tag: latest
      - uses: cloudflare/wrangler-action@1
        with:
          command: publish
          api_token: cloudflare-api-token
          project: cloudflare-project-id
  • on: 指定触发工作流的事件,在本例中为推送到主分支。
  • build-and-test: 在 Ubuntu 虚拟机上构建和测试项目。
  • deploy-to-production: 依赖于 build-and-test 作业,将项目部署到生产环境。

步骤 2:设置 Jenkins

  1. 在宿主机的 /var/jenkins_home 目录中创建以下文件:
    • config.xml:Jenkins 配置文件
    • credentials.xml:存储用于访问仓库、注册表和其他服务的凭据
  2. 修改 config.xml 文件:
...
<clouds>
  <docker-cloud name="docker-hub" apiUrl="https://hub.docker.com/" credentialsId="dockerhub-credentials" verifyCertificate="false" serverFingerprint="false"/>
</clouds>
...
  1. 修改 credentials.xml 文件:
...
<credentials>
  <docker-hub-credentials id="dockerhub-credentials" username="dockerhub-username" password="dockerhub-password"/>
  <cloudflare-api-token id="cloudflare-api-token" secret="secret-cloudflare-api-token"/>
</credentials>
...

步骤 3:启动 Jenkins

使用以下命令启动 Jenkins:

docker run -d -p 8080:8080 -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins

结论

通过遵循本指南中的步骤,您已经成功建立了使用 GitHub Actions 在 GitHub 上进行 Jenkins/CD 自动化构建的管道。这将显著提高您的开发效率,并确保您的应用程序始终处于最新状态。

常见问题解答

  1. 如何修改我的工作流以使用不同的触发器?

    • .github/workflows/ci-cd.yml 文件中的 on 部分修改事件。有关可用触发器的列表,请参阅 GitHub 文档。
  2. 如何向我的项目添加额外的构建步骤?

    • build-and-test 作业的 steps 部分添加额外的步骤。有关可用步骤的列表,请参阅 GitHub Actions 文档。
  3. 如何部署到不同的环境?

    • deploy-to-production 作业中创建单独的步骤,用于部署到每个环境。
  4. 如何调试我的工作流?

    • 使用 GitHub Actions 提供的日志功能,检查工作流执行期间发生的事件。
  5. 如何获得 GitHub Actions 的支持?

    • 访问 GitHub Actions 文档或加入 GitHub 社区论坛寻求帮助。