Supabase CLI Action
ActionsTags
(2)Verified
This action sets up the Supabase CLI,
supabase, on GitHub's hosted Actions
runners. Other CI runners like
Bitbucket
and
GitLab
are supported via their respective pipelines.
This action can be run on ubuntu-latest, windows-latest, and macos-latest
GitHub Actions runners, and will install and expose a specified version of the
supabase CLI on the runner environment.
Setup the supabase CLI:
steps:
- uses: supabase/setup-cli@v1A specific version of the supabase CLI can be installed:
steps:
- uses: supabase/setup-cli@v1
with:
version: 2.20.3Run supabase db start to execute all migrations on a fresh database:
steps:
- uses: supabase/setup-cli@v1
with:
version: latest
- run: supabase init
- run: supabase db startSince Supabase CLI relies on Docker Engine API, additional setup may be required on Windows and macOS runners.
The actions supports the following inputs:
| Name | Type | Description | Default | Required |
|---|---|---|---|---|
version |
String | Supabase CLI version (or latest) |
2.20.3 |
false |
Check generated TypeScript types are up-to-date with Postgres schema:
steps:
- uses: supabase/setup-cli@v1
- run: supabase init
- run: supabase db start
- name: Verify generated types match Postgres schema
run: |
supabase gen types typescript --local > schema.gen.ts
if ! git diff --ignore-space-at-eol --exit-code --quiet schema.gen.ts; then
echo "Detected uncommitted changes after build. See status below:"
git diff
exit 1
fiRelease job to push schema changes to a Supabase project:
env:
SUPABASE_ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
SUPABASE_DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
# Retrieve <project-id> from dashboard url: https://app.supabase.com/project/<project-id>
PROJECT_ID: <project-id>
steps:
- uses: supabase/setup-cli@v1
- run: supabase link --project-ref $PROJECT_ID
- run: supabase db pushAfter you've cloned the repository to your local machine or codespace, you'll need to perform some initial setup steps before you can develop your action.
Note
You'll need to have a reasonably modern version of
Node.js handy (20.x or later should work!). If you are
using a version manager like nodenv or
fnm, this template has a .node-version
file at the root of the repository that can be used to automatically switch to
the correct version when you cd into the repository. Additionally, this
.node-version file is used by GitHub Actions in any actions/setup-node
actions.
-
🛠️ Install the dependencies
npm ci
-
🏗️ Package the TypeScript for distribution
npm run bundle
-
✅ Run the tests
$ npm test PASS ./index.test.js ✓ gets download url to binary (3 ms) ✓ runs main action (891 ms) ...
Actions are run from this GitHub repository so we will checkin the packed dist
folder.
- Create a new GitHub release
- Rebase
v1branch onmain
Your action is now published! 🚀
See the versioning documentation
You can now validate the action by referencing ./ in a workflow in your
repository (see test.yml)
uses: ./
with:
version: latestSee the actions tab for runs of this action! 🚀
Supabase CLI Action is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.