
In this project, the goal was to build a clean and practical CI/CD setup for Google Apps Script using GitHub Actions… Instead of stopping at a minimal demo, the project was developed into a working example with a real Apps Script automation flow, a GitHub Actions pipeline, a validation step before deployment, a web app health response, and spreadsheet bootstrap logic.
We’ve covered CI/CD pipelines with GitHub actions before in AppsScriptPulse, but given the advent of AI developer tools, like Google Antigravity, this comprehensive walkthrough and companion GitHub repository from Shivaji Bodkhe is very timely. A couple of architectural choices in Shivaji’s template are particularly worth highlighting, especially for engineering teams seeking to standardize their internal tooling:
- Pre-Deployment Validation: Rather than treating
clasp pushas a final deployment step, GitHub Actions separates execution into distinctvalidateanddeployjobs. There are some nice additions in the validation step including enforcing V8 runtime and Cloud Logging. - Credential Handling: Managing clasp credentials in CI often presents security friction. Shivaji’s workflow isolates authentication by storing the contents of
~/.clasprc.jsonin GitHub Secrets. During the deployment phase, the workflow injects this file and generates a fresh.clasp.jsonusing the secretAPPS_SCRIPT_SCRIPT_ID.
As developers increasingly adopt agentic coding assistants like Google Antigravity, having versioned code becomes essential. Beyond individual developer workflows, this pattern opens up powerful opportunities for enterprise governance and team collaboration:
- Centralized Deployments Without Shared Credentials: Internal automations and domain-wide Workspace Add-ons can be owned by a dedicated service identity (such as
[email protected]). Contributors and AI agents submit improvements via standard GitHub Pull Requests, which are deployed without needing direct edit permissions to the script or access to the account credentials. - Custom Guardrails: Teams can easily extend Shivaji’s validation step by adding TypeScript checks with
@types/google-apps-scriptor lint rules.
Pipelines like this illustrate how standard software engineering hygiene can be applied directly to Workspace development. Teams looking to move beyond manual browser deployments can fork Shivaji’s sanitized template as a starting foundation. You can inspect the full workflow configuration and template source code on GitHub: shivajibodkhe/google-apps-script-cicd-template
Source: How to Set Up Google Apps Script Deployment from GitHub Actions — Shivaji Bodkhe
