saleor-dockerize-all-apps/Makefile.toml

228 lines
5.9 KiB
TOML

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