Skip to content

🚀 Automate GCP deploy with GitHub Actions + OIDC#16

Merged
gepser merged 1 commit into
masterfrom
feature/gcp-auto-deploy
Feb 22, 2026
Merged

🚀 Automate GCP deploy with GitHub Actions + OIDC#16
gepser merged 1 commit into
masterfrom
feature/gcp-auto-deploy

Conversation

@gepser

@gepser gepser commented Feb 22, 2026

Copy link
Copy Markdown
Owner

✨ Summary

This PR implements automated deployment to Google Cloud Functions Gen2 using GitHub Actions and Workload Identity Federation (OIDC), so deploys no longer depend on manual local commands.

Closes #15

✅ Changes

  • Added deploy workflow:
    • .github/workflows/deploy.yml
    • Triggers on push to master and workflow_dispatch
    • Uses google-github-actions/auth@v3
    • Uses google-github-actions/deploy-cloud-functions@v4
    • Includes post-deploy smoke test step
  • Improved smoke script portability:
    • scripts/smoke.sh
    • Supports both base-domain mode and direct function URL mode via PROGRESS_PATH
  • Expanded README setup docs:
    • README.md
    • Added OIDC/WIF one-time setup steps
    • Added required GitHub repository variables
    • Added automated deploy workflow usage

🧪 Validation

  • mise exec -- make check
  • Local smoke test (root base URL mode):
    • BASE_URL=http://localhost:8080 bash ./scripts/smoke.sh
  • Local smoke test (direct function URL mode):
    • BASE_URL=http://localhost:8080/progress PROGRESS_PATH="" bash ./scripts/smoke.sh

🔐 Security posture

  • No long-lived JSON credentials.
  • Deploy uses GitHub OIDC + Workload Identity Federation only.
  • Scoped to repository-level identity binding (documented in README).

@gepser
gepser merged commit 79d4f1f into master Feb 22, 2026
2 checks passed
@gepser
gepser deleted the feature/gcp-auto-deploy branch February 22, 2026 22:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Automate deploy to Google Cloud Functions Gen2 from GitHub Actions

1 participant