为你的Java应用程序配置CI/CD

先决条件

完成本指南的前面部分,从容器化你的应用程序开始。你必须拥有一个GitHub账号和一个Docker账号来完成本节。

概述

在本节中,你将学习如何设置和使用GitHub Actions来构建并将你的Docker镜像推送到Docker Hub。你将完成以下步骤

  1. 在GitHub上创建一个新仓库。
  2. 定义GitHub Actions工作流程。
  3. 运行工作流程。

第一步:创建仓库

创建一个GitHub仓库,配置Docker Hub凭据,并推送你的源代码。

  1. 在GitHub上创建一个新仓库

  2. 打开仓库的**设置**,然后转到**密钥和变量** > **Actions**。

  3. 创建一个名为DOCKER_USERNAME的新**仓库变量**,并将你的Docker ID作为值。

  4. 为Docker Hub创建一个新的个人访问令牌 (PAT)。你可以将此令牌命名为docker-tutorial。确保访问权限包括读取和写入。

  5. 将PAT作为**仓库密钥**添加到你的GitHub仓库中,名称为DOCKERHUB_TOKEN

  6. 在你的机器上的本地仓库中,运行以下命令以将源更改为你刚刚创建的仓库。确保将your-username更改为你的GitHub用户名,并将your-repository更改为你创建的仓库的名称。

    $ git remote set-url origin https://github.com/your-username/your-repository.git
    
  7. 运行以下命令来暂存、提交和推送你的本地仓库到GitHub。

    $ git add -A
    $ git commit -m "my commit"
    $ git push -u origin main
    

第二步:设置工作流程

设置你的GitHub Actions工作流程以构建、测试并将镜像推送到Docker Hub。

  1. 转到GitHub上的你的仓库,然后选择**Actions**选项卡。该项目已经拥有maven-build工作流程,可以使用Maven构建和测试你的Java应用程序。如果需要,你可以选择禁用此工作流程,因为在本指南中不会使用它。你将创建一个新的替代工作流程来构建、测试和推送你的镜像。

  2. 选择**新建工作流程**。

  3. 选择**自己设置工作流程**。

    这将带你到一个页面,用于在你的仓库中创建新的GitHub Actions工作流程文件,默认情况下位于.github/workflows/main.yml下。

  4. 在编辑器窗口中,复制并粘贴以下YAML配置。

    name: ci
    
    on:
      push:
        branches:
          - main
    
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - name: Login to Docker Hub
            uses: docker/login-action@v3
            with:
              username: ${{ vars.DOCKER_USERNAME }}
              password: ${{ secrets.DOCKERHUB_TOKEN }}
    
          - name: Set up Docker Buildx
            uses: docker/setup-buildx-action@v3
    
          - name: Build and test
            uses: docker/build-push-action@v6
            with:
              target: test
              load: true
    
          - name: Build and push
            uses: docker/build-push-action@v6
            with:
              platforms: linux/amd64,linux/arm64
              push: true
              target: final
              tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest

    有关docker/build-push-action的YAML语法的更多信息,请参阅GitHub Action自述文件

第三步:运行工作流程

保存工作流程文件并运行作业。

  1. 选择**提交更改……**并将更改推送到main分支。

    推送提交后,工作流程将自动启动。

  2. 转到**Actions**选项卡。它会显示工作流程。

    选择工作流程将显示所有步骤的细分。

  3. 工作流程完成后,转到你的Docker Hub上的仓库

    如果在此列表中看到新的仓库,则表示GitHub Actions已成功将镜像推送到Docker Hub。

总结

在本节中,你学习了如何为你的应用程序设置GitHub Actions工作流程。

相关信息

后续步骤

接下来,学习如何在部署之前在Kubernetes上本地测试和调试你的工作负载。