設定 C++ 應用程式的 CI/CD

先決條件

完成本指南先前所有章節,從將 C++ 應用程式容器化開始。您必須具備 GitHub 帳戶和 Docker概觀

在本節中,您將學習如何設定和使用 GitHub Actions 來建置和測試 Docker 映像,並將其推送至 Docker Hub。您將完成以下步驟

  1. 在 GitHub 上建立新的儲存庫。
  2. 定義 GitHub Actions 工作流程。
  3. 執行工作流程。

步驟一:建立儲存庫

建立 GitHub 儲存庫、設定 Docker Hub 憑證,並推送您的原始程式碼。

  1. 在 GitHub 上建立新的儲存庫

  2. 開啟儲存庫**設定**,然後前往**秘密和變數** > **動作**。

  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 上的儲存庫,然後選擇**動作**索引標籤。

  2. 選擇**自行設定工作流程**。

    這將帶您前往一個頁面,在您的儲存庫中建立新的 GitHub 動作工作流程檔案,預設位於 ` .github/workflows/main.yml` 下。

  3. 在編輯器視窗中,複製並貼上以下 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 push
            uses: docker/build-push-action@v6
            with:
              platforms: linux/amd64,linux/arm64
              push: true
              tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest

    有關 `docker/build-push-action` 的 YAML 語法的詳細資訊,請參閱 GitHub Action README

步驟三:執行工作流程

儲存工作流程檔案並執行作業。

  1. 選擇**提交變更...** 並將變更推送至 `main` 分支。

    推送提交後,工作流程會自動啟動。

  2. 前往**動作**索引標籤。它會顯示工作流程。

    選擇工作流程會顯示所有步驟的細分。

  3. 工作流程完成後,前往您的 Docker Hub 上的儲存庫摘要

    在本節中,您學習了如何為 C++ 應用程式設定 GitHub Actions 工作流程。

    相關資訊

    後續步驟

    接下來,學習如何在部署之前在本機測試和除錯 Kubernetes 上的工作負載。