setup-gcloud与其他Google Cloud Actions的完美协作:构建高效云部署工作流

【免费下载链接】setup-gcloud A GitHub Action for installing and configuring the gcloud CLI. 【免费下载链接】setup-gcloud 项目地址: https://gitcode.com/gh_mirrors/se/setup-gcloud

在现代DevOps实践中,自动化部署和配置管理已成为提升开发效率的关键。setup-gcloud作为一款强大的GitHub Action,能够轻松配置GitHub Actions环境中的Google Cloud SDK,为与其他Google Cloud Actions的无缝协作奠定基础。通过本文,您将了解如何利用setup-gcloud与其他Google Cloud Actions构建完整的云服务部署流程,实现从代码提交到服务上线的全自动化。

为什么选择setup-gcloud?

setup-gcloud GitHub Action的核心功能是在GitHub Actions环境中配置[Google Cloud SDK][sdk],包括安装和设置gcloud命令行工具。这一基础设置为后续的云服务部署、资源管理和应用发布提供了必要的环境支持。

该Action具有以下显著优势:

  • 灵活的版本控制:支持指定特定版本或版本约束(如>= 363.0.0),确保与您的项目需求完美匹配
  • 简化的认证流程:与[google-github-actions/auth][auth]无缝集成,支持多种认证方式
  • 可扩展的组件安装:允许安装额外的gcloud组件,满足不同场景需求
  • 缓存支持:在自托管运行器上可缓存下载的 artifacts,提高后续运行效率

setup-gcloud与其他Google Cloud Actions的协作生态

setup-gcloud并非孤立存在,而是Google Cloud GitHub Actions生态系统的重要组成部分。它与其他专用Actions配合使用,能够构建完整的云服务部署流水线:

1. 身份验证:google-github-actions/auth

在使用setup-gcloud之前,必须先通过[google-github-actions/auth][auth]进行身份验证。这一前置步骤为后续所有Google Cloud操作提供安全凭证。

推荐的认证方式

  • 工作负载身份联合(Workload Identity Federation):这是Google推荐的认证方法,无需存储长期凭证
  • 服务账号密钥JSON:传统的密钥文件认证方式
  • GCP上的自托管运行器:自动获取运行器附加的服务账号凭证

2. 核心部署Actions

配置好gcloud环境后,您可以根据项目需求选择以下专用部署Actions:

3. 辅助工具Actions

除了核心部署功能外,还有一些辅助Actions可以增强您的工作流:

实用协作示例:构建完整CI/CD流水线

下面是一个使用setup-gcloud与其他Actions协作的完整示例,展示如何从代码提交到部署Cloud Run服务的全过程:

jobs:
  deploy-cloudrun:
    permissions:
      contents: 'read'
      id-token: 'write'
    
    steps:
    - name: 'Checkout code'
      uses: 'actions/checkout@v4'
    
    - id: 'auth'
      uses: 'google-github-actions/auth@v2'
      with:
        workload_identity_provider: 'projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider'
        service_account: 'my-service-account@my-project.iam.gserviceaccount.com'
    
    - name: 'Set up Cloud SDK'
      uses: 'google-github-actions/setup-gcloud@v3'
      with:
        version: '>= 416.0.0'
    
    - name: 'Build and push image'
      run: |-
        gcloud builds submit --tag gcr.io/my-project/my-image
    
    - name: 'Deploy to Cloud Run'
      uses: 'google-github-actions/deploy-cloudrun@v2'
      with:
        service: 'my-service'
        image: 'gcr.io/my-project/my-image'
        region: 'us-central1'

多服务账号场景

当需要使用多个服务账号时,可以通过多次调用auth和setup-gcloud来切换身份:

jobs:
  multi-account-example:
    permissions:
      contents: 'read'
      id-token: 'write'
    
    steps:
      - id: 'auth account 1'
        uses: 'google-github-actions/auth@v2'
        with:
          workload_identity_provider: 'projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider'
          service_account: 'service-account-1@my-project.iam.gserviceaccount.com'
      
      - name: 'Set up Cloud SDK for account 1'
        uses: 'google-github-actions/setup-gcloud@v3'
      
      - name: 'Use account 1'
        run: 'gcloud auth list --filter=status:ACTIVE --format="value(account)"'
      
      - id: 'auth account 2'
        uses: 'google-github-actions/auth@v2'
        with:
          credentials_json: '${{ secrets.GCP_CREDENTIALS }}'
      
      - name: 'Set up Cloud SDK for account 2'
        uses: 'google-github-actions/setup-gcloud@v3'
      
      - name: 'Use account 2'
        run: 'gcloud auth list --filter=status:ACTIVE --format="value(account)"'

setup-gcloud的高级配置选项

为了更好地与其他Actions协作,setup-gcloud提供了多种配置选项:

版本控制

通过version参数指定gcloud版本,确保与其他Actions兼容:

- uses: 'google-github-actions/setup-gcloud@v3'
  with:
    version: '>= 363.0.0'  # 支持工作负载身份联合的最低版本

安装额外组件

使用install_components参数安装特定组件:

- uses: 'google-github-actions/setup-gcloud@v3'
  with:
    install_components: 'alpha,cloud-datastore-emulator'

项目ID配置

通过project_id参数预设默认项目,简化后续命令:

- uses: 'google-github-actions/setup-gcloud@v3'
  with:
    project_id: 'my-default-project'

最佳实践与注意事项

  1. 版本固定:推荐固定到最新的主版本(如@v3),以获取安全更新和新功能

  2. 认证前置:始终在setup-gcloud之前运行auth Action

  3. 权限设置:确保工作流具有必要的权限,特别是id-token: 'write'用于工作负载身份联合

  4. 版本兼容性:注意不同Actions之间的版本兼容性,特别是setup-gcloudauth的版本匹配

  5. 自托管运行器:在自托管运行器上考虑使用cache参数提高性能

总结

setup-gcloud作为Google Cloud GitHub Actions生态系统的基础组件,为与其他专用Actions的协作提供了坚实的环境支持。通过本文介绍的协作模式和示例,您可以轻松构建从代码到云的完整自动化工作流,显著提升开发和部署效率。

无论是部署Cloud Run服务、管理GKE集群,还是访问Secret Manager,setup-gcloud都能与其他Google Cloud Actions无缝协作,为您的云原生项目提供强大的CI/CD支持。

要开始使用setup-gcloud,请克隆仓库:https://gitcode.com/gh_mirrors/se/setup-gcloud,并参考项目文档开始构建您的自动化工作流。

【免费下载链接】setup-gcloud A GitHub Action for installing and configuring the gcloud CLI. 【免费下载链接】setup-gcloud 项目地址: https://gitcode.com/gh_mirrors/se/setup-gcloud

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐