求助:如何通过GitHub Action部署Cloud Run Job?
配置GitHub Action自动部署Cloud Run Job
以下是实现代码提交时自动部署Cloud Run Job的GitHub Action配置方案,直接使用GCP官方CLI工具完成部署,替代原教程中针对Cloud Run服务的Action:
1. 前置准备
- 在GCP控制台创建具备以下权限的服务账号:
- Cloud Run Admin
- Storage Admin(若需构建推送镜像到GCR)
- 导出服务账号的JSON密钥,添加到GitHub仓库的Secrets中,命名为
GCP_SERVICE_ACCOUNT_KEY - 确保已启用GCP的Cloud Run API、Container Registry API(或Artifact Registry API)
2. GitHub Action Workflow配置
在仓库的.github/workflows目录下创建deploy-cloud-run-job.yml文件,内容如下:
name: Deploy Cloud Run Job on: push: branches: [ main ] # 触发分支可按需修改 jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Authenticate to GCP uses: google-github-actions/auth@v2 with: credentials_json: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }} - name: Set up GCP CLI uses: google-github-actions/setup-gcloud@v2 with: project_id: YOUR_GCP_PROJECT_ID # 替换为你的GCP项目ID install_components: beta # Cloud Run Job部分命令需beta组件 - name: Build and push Docker image to GCR run: | gcloud builds submit --tag gcr.io/YOUR_GCP_PROJECT_ID/YOUR_IMAGE_NAME:${{ github.sha }} . # 若使用Artifact Registry,替换为对应的地址:us-central1-docker.pkg.dev/YOUR_PROJECT_ID/REPO_NAME/IMAGE_NAME - name: Deploy Cloud Run Job run: | gcloud run jobs deploy YOUR_JOB_NAME \ --region YOUR_GCP_REGION \ --image gcr.io/YOUR_GCP_PROJECT_ID/YOUR_IMAGE_NAME:${{ github.sha }} \ --set-env-vars ENV_VAR1=value1,ENV_VAR2=value2 \ # 按需添加环境变量 --cpu 1 \ # 按需配置资源 --memory 512Mi \ --max-retries 2 # 若需覆盖现有Job配置,也可使用`gcloud run jobs replace job-config.yaml`,需提前准备Job的YAML配置文件
关键说明
- 触发条件:示例中为
main分支推送代码时触发,可根据需求修改为其他分支或标签 - 镜像构建:使用
gcloud builds submit自动构建并推送镜像,也可替换为docker/build-push-action实现更灵活的构建配置 - 部署命令:
gcloud run jobs deploy会自动创建或更新Cloud Run Job,若需更精细的配置(如任务超时、并发限制等),可添加对应参数或使用YAML配置文件进行替换部署
内容的提问来源于stack exchange,提问作者Romil
相关产品推荐
相关产品推荐

