Build a Production-Ready Apps Script CI/CD Pipeline with GitHub Actions

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 push as a final deployment step, GitHub Actions separates execution into distinct validate and deploy jobs. 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.json in GitHub Secrets. During the deployment phase, the workflow injects this file and generates a fresh .clasp.json using the secret APPS_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-script or 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