pnpm i
# 初回のみ
cd apps/[起動したいアプリのフォルダー]
pnpm run setup
pnpm run dev
# 一応 Dev をストップする
# shopify.app.tomlから scopes と api_version をコピーする ( 初回のみ )
pnpm shopify app deploy
pnpm run dev
- tomlファイルを
*.local.toml
か*-local.toml
にする
docker build -t asia-northeast2-docker.pkg.dev/kbc-movie-schedule-405807/kbc-custom-app/customer:latest -f apps/customer/Dockerfile.alpine .
docker push asia-northeast2-docker.pkg.dev/kbc-movie-schedule-405807/kbc-custom-app/customer:latest
gcloud run deploy customer --image asia-northeast2-docker.pkg.dev/kbc-movie-schedule-405807/kbc-custom-app/analytics:latest --region asia-northeast2
-
Migration
-
GCPのアカウントを設定する
-
localのIPを許可する
-
各 App .envにDATABASE_URLを設定する
# Local DATABASE_URL="mysql://username:password@db_ip_address/db_name" # Production DATABASE_URL="mysql://username:password@localhost/db_name?socket=/cloudsql/connection_name"
-
-
各App配下で以下のコマンドを実行する
pnpm prisma migrate deploy --schema=./prisma/mysql/schema.prisma
-
The database schema is not empty. Read more about how to baseline an existing production database:
のエラーが出た場合 BaseLineを作成する
pnpm prisma migrate resolve --applied baseline --schema=./prisma/mysql/schema.prisma && prisma migrate deploy --schema=./prisma/mysql/schema.prisma
brew install act
# Dockerを起動する
# Rootにて
act pull_request -e .github/pull_request_event.json
# > Medium
- Step 1
docker pull fox1t/turborepo-remote-cache:latest
docker tag fox1t/turborepo-remote-cache:latest asia-northeast2-docker.pkg.dev/kbc-movie-schedule-405807/turbo-remote-caching/fox1t/turborepo-remote-cache:latest
docker push asia-northeast2-docker.pkg.dev/kbc-movie-schedule-405807/turbo-remote-caching/fox1t/turborepo-remote-cache:latest
- Step 2
[webhooks]
api_version = "2024-07"
[[webhooks.subscriptions]]
topics = [ "metaobjects/create", "metaobjects/update", "metaobjects/delete" ]
uri = "https://glad-counting-introducing-consultants.trycloudflare.com/webhooks/movie"
filter = "type:movie"
metafield_namespaces = [ "custom", "$app" ]
[[webhooks.subscriptions]]
topics = [ "orders/fulfilled" ]
uri = "https://glad-counting-introducing-consultants.trycloudflare.com/webhooks/orders-fulfilled"
metafield_namespaces = [ "custom", "$app" ]
query getWebhook {
webhookSubscriptions(first: 20) {
nodes {
id
topic
filter
metafieldNamespaces
endpoint {
... on WebhookHttpEndpoint {
callbackUrl
}
}
}
}
}
mutation registerWebhook {
webhookSubscriptionCreate(
topic: METAOBJECTS_DELETE
webhookSubscription: {
# filter: "type:movie"
callbackUrl: "https://latest-reserved-interracial-ps.trycloudflare.com/webhooks/movie",
metafieldNamespaces: ["custom", "$app"],
format: JSON,
}
) {
userErrors {
field
message
}
webhookSubscription {
apiVersion {
displayName
}
endpoint {
... on WebhookHttpEndpoint {
callbackUrl
}
}
filter
topic
}
}
}
mutation updateWebhook {
webhookSubscriptionUpdate(
id: "gid://shopify/WebhookSubscription/1539109650752",
webhookSubscription: {
callbackUrl: "https://glad-counting-introducing-consultants.trycloudflare.com/webhooks/movie"
}
) {
userErrors {
field
message
}
webhookSubscription {
apiVersion {
displayName
}
endpoint {
... on WebhookHttpEndpoint {
callbackUrl
}
}
filter
topic
}
}
}