saleor-dockerize-all-apps/Makefile.toml

229 lines
5.9 KiB
Makefile
Raw Normal View History

2024-05-14 14:48:08 +00:00
[env]
CONTAINER_PUSH_URL = "ghcr.io/djkato"
2024-05-14 15:17:32 +00:00
ALL_APPS = [
"abandoned-checkouts",
"payment-stripe",
"payment-klarna",
"payment-authorize.net",
"avatax",
"cms-v2",
"crm",
"data-importer",
"emails-and-messages",
"invoices",
"klaviyo",
"products-feed",
"search",
"segment",
"slack",
"smtp",
"taxjar",
]
2024-05-14 14:48:08 +00:00
[tasks.default]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
alias = "build"
# Overrides the default build task
[tasks.build]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 15:17:32 +00:00
alias = "build-all"
[tasks.build-all]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 15:17:32 +00:00
dependencies = [
"delete-images",
"build-abandoned-checkouts",
2024-05-14 17:53:23 +00:00
"build-stripe",
"build-klarna",
2024-05-14 19:46:01 +00:00
# "build-authorize-net", -- Error: 11.26 Type error: Cannot find module '../generated/graphql' or its corresponding type declarations.
2024-05-14 15:17:32 +00:00
"build-avatax",
2024-05-14 19:46:01 +00:00
# "build-cms-v2", -- Error: Unable to find 'schema-ast'
# "build-crm", -- Error: Unable to find 'schema-ast'
2024-05-14 15:17:32 +00:00
"build-data-importer",
"build-emails-and-messages",
"build-invoices",
"build-klaviyo",
"build-products-feed",
"build-search",
2024-05-14 19:46:01 +00:00
# "build-segment", -- Error: Unable to find 'schema-ast'
# "build-slack", -- Error: 5.551 slack:build: Type error: Type '"redis"' is not comparable to type '"file" | "upstash" | "saleor-cloud"'.
# "build-smtp", -- 8.542 smtp:build: Type error: Cannot find module './redis_apl' or its corresponding type declarations.
2024-05-14 15:17:32 +00:00
"build-taxjar",
]
[tasks.apply-changes]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 15:17:32 +00:00
script = '''
./changes.sh
'''
2024-05-14 16:03:43 +00:00
[tasks.push-all]
workspace = false
script = '''
2024-05-14 15:17:32 +00:00
for i in ${ALL_APPS[*]}; do
2024-05-14 16:03:43 +00:00
docker push ${CONTAINER_PUSH_URL}/saleor-app-$i
2024-05-14 15:17:32 +00:00
done
'''
2024-05-14 16:03:43 +00:00
# HAVE TO DEFINE APP ENV VAR IN CALL, EG: `APP=avatax cargo make push`
[tasks.push]
2024-05-14 16:20:36 +00:00
condition = { env_set = ["APP"] }
2024-05-14 16:03:43 +00:00
workspace = false
script = '''
docker push ${CONTAINER_PUSH_URL}/saleor-app-${APP}
'''
[tasks.delete-images]
2024-05-14 16:03:43 +00:00
workspace = false
script = '''
2024-05-14 15:17:32 +00:00
for i in ${ALL_APPS[*]}; do
docker rmi -f $(docker image ls -q --filter=label=service=saleor-app-$i) 2>&1 || true
done
'''
2024-05-14 14:48:08 +00:00
[tasks.build-avatax]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "app-avatax", "APP_DIR" = "avatax" }
2024-05-14 14:48:08 +00:00
[tasks.build-cms-v2]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "cms-v2", "APP_DIR" = "cms-v2" }
2024-05-14 14:48:08 +00:00
[tasks.build-crm]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "crm", "APP_DIR" = "crm" }
2024-05-14 14:48:08 +00:00
[tasks.build-data-importer]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "data-importer", "APP_DIR" = "data-importer" }
2024-05-14 14:48:08 +00:00
[tasks.build-emails-and-messages]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "emails-and-messages", "APP_DIR" = "emails-and-messages" }
2024-05-14 14:48:08 +00:00
[tasks.build-invoices]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "invoices", "APP_DIR" = "invoices" }
2024-05-14 14:48:08 +00:00
[tasks.build-klaviyo]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "klaviyo", "APP_DIR" = "klaviyo" }
2024-05-14 14:48:08 +00:00
[tasks.build-products-feed]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "products-feed", "APP_DIR" = "products-feed" }
2024-05-14 14:48:08 +00:00
[tasks.build-search]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "search", "APP_DIR" = "search" }
2024-05-14 14:48:08 +00:00
[tasks.build-segment]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "segment", "APP_DIR" = "segment" }
2024-05-14 14:48:08 +00:00
[tasks.build-slack]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "slack", "APP_DIR" = "slack" }
2024-05-14 14:48:08 +00:00
[tasks.build-smtp]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "smtp", "APP_DIR" = "smtp" }
2024-05-14 14:48:08 +00:00
[tasks.build-taxjar]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 19:00:06 +00:00
env = { "APP_NAME" = "app-taxjar", "APP_DIR" = "taxjar" }
2024-05-14 14:48:08 +00:00
## DEPRECATED APPS:
[tasks.build-stripe]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-old-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 14:48:08 +00:00
env = { "APP" = "payment-stripe", "PUBLIC_PATH" = "/app/public" }
[tasks.build-klarna]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-old-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 14:48:08 +00:00
env = { "APP" = "payment-klarna", "PUBLIC_PATH" = "/app/public" }
2024-05-14 14:48:08 +00:00
[tasks.build-abandoned-checkouts]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-old-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 14:48:08 +00:00
env = { "APP" = "abandoned-checkouts", "PUBLIC_PATH" = "/app/src/public" }
2024-05-14 14:48:08 +00:00
[tasks.build-authorize-net]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
extend = "build-arg-old-app"
2024-05-14 16:03:43 +00:00
private = false
2024-05-14 14:48:08 +00:00
env = { "APP" = "payment-authorize.net", "PUBLIC_PATH" = "/app/example/public" }
2024-05-14 15:17:32 +00:00
## GENERALIZED BUILD SCRIPTS
[tasks.build-arg-app]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 15:17:32 +00:00
private = true
script = '''
cd all_apps/apps
2024-05-14 16:03:43 +00:00
2024-05-14 19:00:06 +00:00
cd ./apps/${APP_DIR}
2024-05-14 16:03:43 +00:00
VERSION=$(npm pkg get version --workspaces=false | tr -d '"')
cd ../../
2024-05-14 19:00:06 +00:00
docker build . --build-arg APP_NAME="${APP_NAME}" \
--build-arg APP_DIR="${APP_DIR}" \
2024-05-15 13:31:44 +00:00
--build-arg SERVICE="saleor-app-${APP_DIR}" \
--build-arg TITLE="djkato/saleor-app-${APP_DIR}" \
--build-arg DESC="Saleor app for ${APP_DIR}" \
--build-arg URL="https://github.com/saleor/saleor-app-${APP_DIR}" \
2024-05-14 16:25:05 +00:00
--build-arg SOURCE="https://github.com/djkato/saleor-dockerize-all-apps" \
2024-05-14 15:17:32 +00:00
--build-arg AUTHORS="Saleor <hello@saleor.io>, Djkáťo <djkatovfx@gmail.com>" \
2024-05-15 13:31:44 +00:00
-t ${CONTAINER_PUSH_URL}/saleor-app-${APP_DIR}:${VERSION}
2024-05-14 15:17:32 +00:00
'''
2024-05-14 14:48:08 +00:00
[tasks.build-arg-old-app]
2024-05-14 16:03:43 +00:00
workspace = false
2024-05-14 14:48:08 +00:00
private = true
script = '''
cd all_apps/saleor-app-${APP}
2024-05-14 16:03:43 +00:00
VERSION=$(npm pkg get version --workspaces=false | tr -d '"')
2024-05-14 14:48:08 +00:00
docker build . --build-arg PUBLIC_PATH="${PUBLIC_PATH}" \
--build-arg SERVICE="saleor-app-${APP}" \
--build-arg TITLE="djkato/saleor-app-${APP}" \
--build-arg DESC="Saleor app for Authorize.net" \
--build-arg URL="https://github.com/saleor/saleor-app-${APP}" \
2024-05-14 16:25:05 +00:00
--build-arg SOURCE="https://github.com/djkato/saleor-dockerize-all-apps" \
2024-05-14 14:48:08 +00:00
--build-arg AUTHORS="Saleor <hello@saleor.io>, Djkáťo <djkatovfx@gmail.com>" \
2024-05-14 16:03:43 +00:00
-t ${CONTAINER_PUSH_URL}/saleor-app-${APP}:${VERSION}
'''