1+ version : ' 3'
2+
3+ vars :
4+ PLUGINS_DIR : " ../plugins"
5+ ADAPTERS_DIR : " ../adapters"
6+ PULL_JOBS : 30
7+ PNPM_JOBS : 10
8+ PLUGINS :
9+ - " adminforth-audit-log"
10+ - " adminforth-email-password-reset"
11+ - " adminforth-foreign-inline-list"
12+ - " adminforth-i18n"
13+ - " adminforth-import-export"
14+ - " adminforth-text-complete"
15+ - " adminforth-open-signup"
16+ - " adminforth-rich-editor"
17+ - " adminforth-two-factors-auth"
18+ - " adminforth-upload"
19+ - " adminforth-oauth"
20+ - " adminforth-list-in-place-edit"
21+ - " adminforth-inline-create"
22+ - " adminforth-markdown"
23+ - " adminforth-foreign-inline-show"
24+ - " adminforth-email-invite"
25+ - " adminforth-bulk-ai-flow"
26+ - " adminforth-universal-search"
27+ - " adminforth-login-captcha"
28+ - " adminforth-user-soft-delete"
29+ - " adminforth-clone-row"
30+ - " adminforth-quick-filters"
31+ - " adminforth-many2many"
32+ - " adminforth-background-jobs"
33+
34+ ADAPTERS :
35+ - " adminforth-completion-adapter-open-ai-chat-gpt"
36+ - " adminforth-email-adapter-aws-ses"
37+ - " adminforth-email-adapter-mailgun"
38+ - " adminforth-google-oauth-adapter"
39+ - " adminforth-github-oauth-adapter"
40+ - " adminforth-facebook-oauth-adapter"
41+ - " adminforth-keycloak-oauth-adapter"
42+ - " adminforth-microsoft-oauth-adapter"
43+ - " adminforth-twitch-oauth-adapter"
44+ - " adminforth-image-generation-adapter-openai"
45+ - " adminforth-storage-adapter-amazon-s3"
46+ - " adminforth-storage-adapter-local"
47+ - " adminforth-image-vision-adapter-openai"
48+ - " adminforth-key-value-adapter-ram"
49+ - " adminforth-login-captcha-adapter-cloudflare"
50+ - " adminforth-login-captcha-adapter-recaptcha"
51+ - " adminforth-completion-adapter-google-gemini"
52+ - " adminforth-key-value-adapter-redis"
53+ - " adminforth-key-value-adapter-leveldb"
54+
55+
56+ tasks :
57+
58+ pull_repos :
59+ internal : true
60+ cmds :
61+ - |
62+ set -euo pipefail
63+ mkdir -p "{{.DIR}}"
64+ cd "{{.DIR}}"
65+
66+ repos=({{range .REPOS}}{{.}} {{end}})
67+
68+ printf '%s\n' "${repos[@]}" | xargs -n1 -P"{{.PULL_JOBS}}" -I{} bash -c '
69+ set -euo pipefail
70+ repo="$1"
71+ repo_url="https://github.com/devforth/${repo}.git"
72+ name="$(basename "${repo}" .git)"
73+
74+ if [ -d "${name}" ]; then
75+ echo "Pulling ${name}"
76+ (cd "${name}" && git pull)
77+ else
78+ echo "Cloning ${name}"
79+ git clone "${repo_url}" "${name}"
80+ fi
81+ ' _ {}
82+
83+ pnpm_repos :
84+ internal : true
85+ cmds :
86+ - |
87+ set -euo pipefail
88+ cd "{{.DIR}}"
89+
90+ repos=({{range .REPOS}}{{.}} {{end}})
91+
92+ printf '%s\n' "${repos[@]}" | xargs -n1 -P"{{.PNPM_JOBS}}" -I{} bash -c '
93+ set -euo pipefail
94+ name="$1"
95+
96+ if [ -d "${name}" ]; then
97+ echo "Installing dependencies for ${name}"
98+ (cd "${name}" && pnpm install)
99+ else
100+ echo "Directory ${name} does not exist, skipping"
101+ fi
102+ ' _ {}
103+
104+ pull_plugins :
105+ desc : Pull plugin repositories
106+ cmds :
107+ - task : pull_repos
108+ vars :
109+ DIR : " {{.PLUGINS_DIR}}"
110+ REPOS :
111+ ref : .PLUGINS
112+
113+ pull_adapters :
114+ desc : Pull adapter repositories
115+ cmds :
116+ - task : pull_repos
117+ vars :
118+ DIR : " {{.ADAPTERS_DIR}}"
119+ REPOS :
120+ ref : .ADAPTERS
121+
122+ pnpm_plugins :
123+ desc : Install plugin dependencies
124+ cmds :
125+ - task : pnpm_repos
126+ vars :
127+ DIR : " {{.PLUGINS_DIR}}"
128+ REPOS :
129+ ref : .PLUGINS
130+
131+ pnpm_adapters :
132+ desc : Install adapter dependencies
133+ cmds :
134+ - task : pnpm_repos
135+ vars :
136+ DIR : " {{.ADAPTERS_DIR}}"
137+ REPOS :
138+ ref : .ADAPTERS
0 commit comments