Skip to content

Commit

Permalink
Merge pull request #6 from hypercerts-org/develop
Browse files Browse the repository at this point in the history
feat(ci): add supabase auto deployments
  • Loading branch information
Jipperism authored Oct 17, 2023
2 parents 9a47d8a + b9c9690 commit f1d9107
Show file tree
Hide file tree
Showing 9 changed files with 309 additions and 108 deletions.
30 changes: 30 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
NEXT_PUBLIC_SUPABASE_PRIVATE_KEY=supabase-key
WALLET_CONNECT_ID=wallet-connect-id
SUPABASE_ACCESS_TOKEN=supabase-access-token

NEXT_PUBLIC_DOMAIN=hyperboards.org

####### Web3 #######
# 5 = Goerli, 10=Optimism
NEXT_PUBLIC_DEFAULT_CHAIN_ID=5


# UUPS proxy contract address
NEXT_PUBLIC_CONTRACT_ADDRESS=public-contract-address


# Subgraph URL - currently using hosted service
NEXT_PUBLIC_GRAPH_URL=https://api.thegraph.com/subgraphs/name/hypercerts-admin/hypercerts-optimism-mainnet

NEXT_PUBLIC_NFT_STORAGE_TOKEN=nft-storage-token

# Trader contract
NEXT_PUBLIC_TRADER_CONTRACT=trader-contract-address


# Provider RPC URL (e.g. via Alchemy)
NEXT_PUBLIC_WALLETCONNECT_ID=wallet-connect-id
NEXT_PUBLIC_WEB3_STORAGE_TOKEN=storage-token
NEXT_PUBLIC_SUPABASE_URL=https://clagjjfinooizoqdkvqc.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=supabase-anon-key
NEXT_PUBLIC_SUPABASE_TABLE=allowlistCache-optimism
26 changes: 26 additions & 0 deletions .github/workflows/production.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Deploy Migrations to Production

on:
push:
branches:
- main
workflow_dispatch:

jobs:
deploy:
runs-on: ubuntu-latest

env:
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
SUPABASE_DB_PASSWORD: ${{ secrets.PRODUCTION_DB_PASSWORD }}
SUPABASE_PROJECT_ID: ${{ secrets.PRODUCTION_PROJECT_ID }}

steps:
- uses: actions/checkout@v3

- uses: supabase/setup-cli@v1
with:
version: latest

- run: supabase link --project-ref $SUPABASE_PROJECT_ID
- run: supabase db push
26 changes: 26 additions & 0 deletions .github/workflows/staging.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Deploy Migrations to Staging

on:
push:
branches:
- develop
workflow_dispatch:

jobs:
deploy:
runs-on: ubuntu-latest

env:
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
SUPABASE_DB_PASSWORD: ${{ secrets.STAGING_DB_PASSWORD }}
SUPABASE_PROJECT_ID: ${{ secrets.STAGING_PROJECT_ID }}

steps:
- uses: actions/checkout@v3

- uses: supabase/setup-cli@v1
with:
version: latest

- run: supabase link --project-ref $SUPABASE_PROJECT_ID
- run: supabase db push
10 changes: 7 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@
"build": "next build",
"start": "next start",
"lint": "next lint",
"supabase:types": "supabase gen types typescript --project-id clagjjfinooizoqdkvqc > ./types/database.ts"
"supabase:init": "supabase init",
"supabase:start": "supabase start",
"supabase:types": "supabase gen types typescript --project-id clagjjfinooizoqdkvqc > ./types/database.ts",
"supabase:migration:new": "supabase migration new",
"supabase:migration:push": "supabase migration up"
},
"dependencies": {
"@chakra-ui/react": "^2.8.0",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@hypercerts-org/sdk": "^0.5.0",
"@hypercerts-org/sdk": "0.8.8",
"@plasmicapp/cli": "^0.1.307",
"@plasmicapp/loader-nextjs": "^1.0.309",
"@plasmicapp/react-web": "^0.2.248",
Expand Down Expand Up @@ -41,7 +45,7 @@
"react-dom": "18.2.0",
"react-slick": "^0.29.0",
"slick-carousel": "^1.8.1",
"supabase": "^1.93.0",
"supabase": "^1.106.1",
"typescript": "5.2.2",
"viem": "^1.10.3",
"wagmi": "^1.4.1"
Expand Down
3 changes: 3 additions & 0 deletions supabase/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Supabase
.branches
.temp
134 changes: 134 additions & 0 deletions supabase/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# A string used to distinguish different Supabase projects on the same host. Defaults to the
# working directory name when running `supabase init`.
project_id = "hyperboards"

[api]
enabled = true
# Port to use for the API URL.
port = 54321
# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API
# endpoints. public and storage are always included.
schemas = ["public", "storage", "graphql_public"]
# Extra schemas to add to the search_path of every request. public is always included.
extra_search_path = ["public", "extensions"]
# The maximum number of rows returns from a view, table, or stored procedure. Limits payload size
# for accidental or malicious requests.
max_rows = 1000

[db]
# Port to use for the local database URL.
port = 54322
# Port used by db diff command to initialise the shadow database.
shadow_port = 54320
# The database major version to use. This has to be the same as your remote database's. Run `SHOW
# server_version;` on the remote database to check.
major_version = 15

[db.pooler]
enabled = false
# Port to use for the local connection pooler.
port = 54329
# Specifies when a server connection can be reused by other clients.
# Configure one of the supported pooler modes: `transaction`, `session`.
pool_mode = "transaction"
# How many server connections to allow per user/database pair.
default_pool_size = 20
# Maximum number of client connections allowed.
max_client_conn = 100

[realtime]
enabled = true
# Bind realtime via either IPv4 or IPv6. (default: IPv6)
# ip_version = "IPv6"

[studio]
enabled = true
# Port to use for Supabase Studio.
port = 54323
# External URL of the API server that frontend connects to.
api_url = "http://localhost"

# Email testing server. Emails sent with the local dev setup are not actually sent - rather, they
# are monitored, and you can view the emails that would have been sent from the web interface.
[inbucket]
enabled = true
# Port to use for the email testing server web interface.
port = 54324
# Uncomment to expose additional ports for testing user applications that send emails.
# smtp_port = 54325
# pop3_port = 54326

[storage]
enabled = true
# The maximum file size allowed (e.g. "5MB", "500KB").
file_size_limit = "50MiB"

[auth]
enabled = true
# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used
# in emails.
site_url = "http://localhost:3000"
# A list of *exact* URLs that auth providers are permitted to redirect to post authentication.
additional_redirect_urls = ["https://localhost:3000"]
# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 (1 week).
jwt_expiry = 3600
# If disabled, the refresh token will never expire.
enable_refresh_token_rotation = true
# Allows refresh tokens to be reused after expiry, up to the specified interval in seconds.
# Requires enable_refresh_token_rotation = true.
refresh_token_reuse_interval = 10
# Allow/disallow new user signups to your project.
enable_signup = true

[auth.email]
# Allow/disallow new user signups via email to your project.
enable_signup = true
# If enabled, a user will be required to confirm any email change on both the old, and new email
# addresses. If disabled, only the new email is required to confirm.
double_confirm_changes = true
# If enabled, users need to confirm their email address before signing in.
enable_confirmations = false

# Uncomment to customize email template
# [auth.email.template.invite]
# subject = "You have been invited"
# content_path = "./supabase/templates/invite.html"

[auth.sms]
# Allow/disallow new user signups via SMS to your project.
enable_signup = true
# If enabled, users need to confirm their phone number before signing in.
enable_confirmations = false

# Use pre-defined map of phone number to OTP for testing.
[auth.sms.test_otp]
# 4152127777 = "123456"

# Configure one of the supported SMS providers: `twilio`, `twilio_verify`, `messagebird`, `textlocal`, `vonage`.
[auth.sms.twilio]
enabled = false
account_sid = ""
message_service_sid = ""
# DO NOT commit your Twilio auth token to git. Use environment variable substitution instead:
auth_token = "env(SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN)"

# Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`,
# `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin`, `notion`, `twitch`,
# `twitter`, `slack`, `spotify`, `workos`, `zoom`.
[auth.external.apple]
enabled = false
client_id = ""
# DO NOT commit your OAuth provider secret to git. Use environment variable substitution instead:
secret = "env(SUPABASE_AUTH_EXTERNAL_APPLE_SECRET)"
# Overrides the default auth redirectUrl.
redirect_uri = ""
# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure,
# or any other third-party OIDC providers.
url = ""

[analytics]
enabled = false
port = 54327
vector_port = 54328
# Configure one of the supported backends: `postgres`, `bigquery`.
backend = "postgres"
37 changes: 37 additions & 0 deletions supabase/migrations/20231017122116_init.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
create extension if not exists citext
with
schema extensions;

create table
public.registries_optimism (
id uuid not null default gen_random_uuid (),
created_at timestamp with time zone not null default now(),
name text not null,
description text not null,
admin_id text not null,
hidden boolean not null default false,
constraint registries_optimism_pkey primary key (id)
) tablespace pg_default;

create table
public.hyperboard_claims (
id uuid not null default gen_random_uuid (),
created_at timestamp with time zone not null default now(),
registry_id uuid not null,
hypercert_id text not null,
constraint hyperboard_claims_pkey primary key (id),
constraint hyperboard_claims_registry_id_fkey foreign key (registry_id) references "registries_optimism" (id)
) tablespace pg_default;

create table
public.hyperboard_sponsor_metadata (
id uuid not null default gen_random_uuid (),
created_at timestamp with time zone not null default now(),
type text not null,
"companyName" text null,
"firstName" text null,
"lastName" text null,
image text not null,
address citext not null,
constraint hyperboard_sponsor_metadata_pkey primary key (id)
) tablespace pg_default;
Empty file added supabase/seed.sql
Empty file.
Loading

0 comments on commit f1d9107

Please sign in to comment.