saleor-dockerize-all-apps/Makefile.toml

228 lines
5 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",
"build-payment-stripe",
"build-payment-klarna",
"build-payment-authorize.net",
"build-avatax",
"build-cms-v2",
"build-crm",
"build-data-importer",
"build-emails-and-messages",
"build-invoices",
"build-klaviyo",
"build-products-feed",
"build-search",
"build-segment",
"build-slack",
"build-smtp",
"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 14:48:08 +00:00
env = { "APP" = "avatax" }
[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 14:48:08 +00:00
env = { "APP" = "cms-v2" }
[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 14:48:08 +00:00
env = { "APP" = "crm" }
[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 14:48:08 +00:00
env = { "APP" = "data-importer" }
[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 14:48:08 +00:00
env = { "APP" = "emails-and-messages" }
[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 14:48:08 +00:00
env = { "APP" = "invoices" }
[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 14:48:08 +00:00
env = { "APP" = "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 14:48:08 +00:00
env = { "APP" = "products-feed" }
[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 14:48:08 +00:00
env = { "APP" = "search" }
[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 14:48:08 +00:00
env = { "APP" = "segment" }
[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 14:48:08 +00:00
env = { "APP" = "slack" }
[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 14:48:08 +00:00
env = { "APP" = "smtp" }
[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 14:48:08 +00:00
env = { "APP" = "taxjar" }
## 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
cd ./apps/${APP}
VERSION=$(npm pkg get version --workspaces=false | tr -d '"')
cd ../../
docker build . --build-arg TARGET_APP="${APP}" \
--build-arg SERVICE="saleor-app-${APP}" \
2024-05-14 15:17:32 +00:00
--build-arg TITLE="djkato/saleor-app-${APP}" \
--build-arg DESC="Saleor app for ${APP}" \
--build-arg URL="https://github.com/saleor/saleor-app-${APP}" \
--build-arg SOUCRE="https://github.com/saleor/saleor-app-${APP}" \
--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}
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}" \
--build-arg SOUCRE="https://github.com/saleor/saleor-app-${APP}" \
--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}
'''