Feat: Add Supabase - Deploy Edge Function community step template#1688
Merged
benPearce1 merged 3 commits intoJun 2, 2026
Merged
Conversation
|
Review this PR in Hyponome for a side-by-side diff of the step-template JSON and any embedded scripts. |
benPearce1
approved these changes
Jun 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Background
Supabase is an open-source alternative to Firebase built on PostgreSQL. It includes a managed database, authentication, storage, realtime subscriptions, and Edge Functions-globally distributed TypeScript/Deno serverless functions.
The rise of AI-assisted development tools such as Cursor, Windsurf, and Claude Code has also led to broader adoption of Supabase. Its generated SDKs, built-in APIs, and CLI tooling make it easy to stand up and evolve a backend, which works well for teams building applications with AI coding tools. Many people are now deploying applications built with Supabase, and Edge Functions are increasingly where application logic is implemented. This presents a strong opportunity for Octopus to further support and streamline these deployment workflows.
The Octopus Library already has a
Supabase - Run Migrationsstep template for pushing database schema changes. This PR adds the missing companion step: deploying Edge Functions.Sample repository:
octopus-community-step-temp-supabase
Results
Adds a new community step template
Supabase - Deploy Edge Function(step-templates/supabase-deploy-edge-function.json) that:SUPABASE_ACCESS_TOKENenvironment variable - no interactive login required, safe for CI/CD workers#{Octopus.Action.Package[supabase-migrations].ExtractedPath}) with a fallback to the current directory, matching the pattern used by the existingSupabase - Run Migrationsstepsupabase functions deploy <name> --project-ref ... --workdir ...) or all functions in the package (leave Function Name empty to deploy all)--no-verify-jwt) for public functions--import-map)GETthe function URL and assert a non-5xx response - a401is a pass (expected when JWT verification is enabled)Parameters
SupabaseProjectRefSupabaseAccessTokenSupabaseFunctionNameSupabaseVerifyJWTSupabaseImportMapPathSupabaseSmokeTestSupabaseCliVersionlatestBefore
Deploying Supabase Edge Functions from an Octopus deployment required a custom Run a Script step, manually scripting the CLI install, authentication, and deploy command for each project.
After
A single reusable step template. Attach the package containing
supabase/functions/, supply the project ref and access token, and the step handles the rest - including CLI installation on a clean worker.Octopus task log
ServerTasks-2176.log.txt
Octopus step configuration
Supabase dashboard - deployed functions
Pre-requisites
Idis a GUID (c3e5a7f2-8b14-4d9c-a6e0-f1d2b3c4e5f6) and not all zerosVersionis1(new template)$Supabaseto avoid clashing with user-defined project variablesLastModifiedByis present (itsmebenwalker)Categoryissupabase- existing category, no new logo orgulpfile.babel.jschange required