Bumps the actions-minor-patch group with 1 update: [ruby/setup-ruby](https://github.com/ruby/setup-ruby). Updates `ruby/setup-ruby` from 1.317.0 to 1.319.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ruby/setup-ruby/releases">ruby/setup-ruby's releases</a>.</em></p> <blockquote> <h2>v1.319.0</h2> <h2>What's Changed</h2> <ul> <li>Add ruby-3.3.12 by <a href="https://github.com/ruby-builder-bot"><code>@ruby-builder-bot</code></a> in <a href="https://redirect.github.com/ruby/setup-ruby/pull/930">ruby/setup-ruby#930</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/ruby/setup-ruby/compare/v1.318.0...v1.319.0">https://github.com/ruby/setup-ruby/compare/v1.318.0...v1.319.0</a></p> <h2>v1.318.0</h2> <h2>What's Changed</h2> <ul> <li>Update CRuby releases on Windows by <a href="https://github.com/ruby-builder-bot"><code>@ruby-builder-bot</code></a> in <a href="https://redirect.github.com/ruby/setup-ruby/pull/929">ruby/setup-ruby#929</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/ruby/setup-ruby/compare/v1.317.0...v1.318.0">https://github.com/ruby/setup-ruby/compare/v1.317.0...v1.318.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="003a5c4d8d"><code>003a5c4</code></a> Add ruby-3.3.12</li> <li><a href="8e41b362d2"><code>8e41b36</code></a> Update CRuby releases on Windows</li> <li>See full diff in <a href="6e5d382445...003a5c4d8d">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
⚙️ Supabase CLI Action
About
This composite 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.
Usage
Setup the supabase CLI:
steps:
- uses: supabase/setup-cli@v3
If version is omitted, the action checks the repository root for bun.lock,
pnpm-lock.yaml, or package-lock.json and installs the declared supabase
package version through npm. If the lockfile includes package integrity
metadata, the action verifies it against the npm registry before installing. If
no supported lockfile is present, it falls back to latest.
The action uses an existing Node.js/npm runtime when one is already available, and requires Node.js 20 or newer. On non-musl runners without Node.js or npm, it provisions them internally. Runners must be able to reach the npm registry to install the CLI package.
When running in Alpine or other Linux musl containers, the action uses Alpine's
nodejs and npm packages instead of actions/setup-node, because the
standard Node.js runner binaries target glibc. Root containers can have missing
runtime packages installed automatically. Non-root containers must include
Node.js 20+ and the runtime packages in the image before the action runs:
FROM alpine:3.20
RUN apk add --no-cache libstdc++ libgcc nodejs npm
USER 1000:1000
A fixed npm-published version, latest, or beta of the supabase CLI can be
installed:
steps:
- uses: supabase/setup-cli@v3
with:
version: 2.84.2
steps:
- uses: supabase/setup-cli@v3
with:
version: beta
Run supabase db start to execute all migrations on a fresh database:
steps:
- uses: supabase/setup-cli@v3
with:
version: latest
- run: supabase init
- run: supabase db start
Since Supabase CLI relies on Docker Engine API, additional setup may be required on Windows and macOS runners.
Inputs
The action supports the following inputs:
| Name | Type | Description | Default | Required |
|---|---|---|---|---|
version |
String | Supabase CLI latest, beta, or fixed version published to npm |
Root lockfile version or latest |
false |
Advanced Usage
Check generated TypeScript types are up-to-date with Postgres schema:
steps:
- uses: supabase/setup-cli@v3
- 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
fi
Release 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@v3
- run: supabase link --project-ref $PROJECT_ID
- run: supabase db push
Export local Supabase env vars for app tests:
steps:
- uses: supabase/setup-cli@v3
- run: supabase init
- run: supabase start
- name: Export local Supabase env vars
run: |
# Customize the variable names as needed for your app.
supabase status -o env \
--override-name api.url=SUPABASE_URL \
--override-name auth.service_role_key=SUPABASE_SERVICE_ROLE_KEY \
>> .env.test
- run: bun test
Develop
After you've cloned the repository to your local machine or codespace, you'll need to perform a few setup steps before you can work on the action.
Note
You'll need a recent version of Bun for local development. This repository includes a
.bun-versionfile for tools that can auto-switch Bun versions.
-
🛠️ Install the dependencies
bun install -
✅ Run the tests
bun test -
🔍 Run the full local CI suite
bun run ci
Publish
- Create a new GitHub release
- Rebase
v3branch onmain
Your action is now published! 🚀
See the versioning documentation
Validate
Validate changes by exercising the action from a workflow in this repository (see ci.yml and e2e.yml).
steps:
- uses: ./
with:
version: latest
The CI workflow provides fast smoke coverage across GitHub-hosted runners, and
the E2E workflow verifies supabase init and supabase start against supported
Postgres versions. See the actions tab
for recent runs.