Skip to content

Commit 5fb7365

Browse files
committed
fix(Makefile): add support for building apps with dev dependencies
Signed-off-by: copilot Claude Sonnet 4.5 Co-authored-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de>
1 parent 1395a7b commit 5fb7365

1 file changed

Lines changed: 24 additions & 3 deletions

File tree

Makefile

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ ARCHITECTURE = x86_64
1515

1616
# Common build commands
1717
COMPOSER_INSTALL = composer install --no-dev -o --no-interaction
18+
COMPOSER_INSTALL_WITH_DEV = composer install -o --no-interaction --no-scripts && composer run-script post-install-cmd --no-interaction 2>/dev/null || true
1819
NPM_INSTALL = npm ci --prefer-offline --no-audit
1920
NPM_BUILD = npm run build
2021

@@ -49,7 +50,10 @@ FULL_BUILD_APPS = \
4950
twofactor_totp \
5051
user_oidc \
5152
viewer \
52-
whiteboard \
53+
whiteboard
54+
55+
# App directories that need full build WITH dev dependencies (composer with dev + npm + build)
56+
FULL_BUILD_WITH_DEV_APPS = \
5357
password_policy
5458

5559
# App directories that need only composer
@@ -65,6 +69,7 @@ REMOVE_UNWANTED_APPS = $(shell [ -f IONOS/removed-apps.txt ] && sed '/^#/d;/^$$/
6569

6670
# Generate build targets dynamically
6771
FULL_BUILD_TARGETS = $(patsubst %,build_%_app,$(FULL_BUILD_APPS))
72+
FULL_BUILD_WITH_DEV_TARGETS = $(patsubst %,build_%_app,$(FULL_BUILD_WITH_DEV_APPS))
6873
COMPOSER_ONLY_TARGETS = $(patsubst %,build_%_app,$(COMPOSER_ONLY_APPS))
6974
NOTHING_TO_BUILD_TARGETS = $(patsubst %,build_%_app,$(NOTHING_TO_BUILD_APPS))
7075

@@ -73,7 +78,7 @@ NOTHING_TO_BUILD_TARGETS = $(patsubst %,build_%_app,$(NOTHING_TO_BUILD_APPS))
7378
# Main Nextcloud build
7479
.PHONY: build_ncw
7580
# Applications - dynamically generated
76-
.PHONY: build_all_external_apps build_notify_push_app build_notify_push_binary build_core_app_theming $(FULL_BUILD_TARGETS) $(COMPOSER_ONLY_TARGETS) $(NOTHING_TO_BUILD_TARGETS)
81+
.PHONY: build_all_external_apps build_notify_push_app build_notify_push_binary build_core_app_theming $(FULL_BUILD_TARGETS) $(FULL_BUILD_WITH_DEV_TARGETS) $(COMPOSER_ONLY_TARGETS) $(NOTHING_TO_BUILD_TARGETS)
7782
# Configuration and packaging
7883
.PHONY: add_config_partials patch_shipped_json version.json zip_dependencies
7984
# Pipeline targets for GitLab workflow
@@ -94,6 +99,8 @@ help: ## This help.
9499
@echo "Individual app build targets:"
95100
@echo " Full build apps (composer + npm + build):"
96101
@for app in $(FULL_BUILD_APPS); do printf "\033[36m%-30s\033[0m Build $$app app (full build)\n" "build_$${app}_app"; done
102+
@echo " Full build apps with dev dependencies (composer with dev + npm + build):"
103+
@for app in $(FULL_BUILD_WITH_DEV_APPS); do printf "\033[36m%-30s\033[0m Build $$app app (full build with dev)\n" "build_$${app}_app"; done
97104
@echo " Composer-only apps:"
98105
@for app in $(COMPOSER_ONLY_APPS); do printf "\033[36m%-30s\033[0m Build $$app app (composer only)\n" "build_$${app}_app"; done
99106
@echo " Nothing to build apps:"
@@ -119,6 +126,16 @@ define build_full_app
119126
@echo "[✓] $(1) app built successfully"
120127
endef
121128

129+
# Common function to build apps with full build + dev dependencies
130+
define build_full_app_with_dev
131+
@echo "[i] Building $(1) app (with dev dependencies)..."
132+
@cd apps-external/$(1) && \
133+
$(COMPOSER_INSTALL_WITH_DEV) && \
134+
$(NPM_INSTALL) && \
135+
$(NPM_BUILD)
136+
@echo "[✓] $(1) app built successfully"
137+
endef
138+
122139
# Common function to build apps with composer only
123140
define build_composer_app
124141
@echo "[i] Building $(1) app..."
@@ -143,6 +160,10 @@ build_ncw: build_core_app_theming ## Build Nextcloud Workspace
143160
$(FULL_BUILD_TARGETS): build_%_app:
144161
$(call build_full_app,$(patsubst build_%_app,%,$@))
145162

163+
# Dynamic rules for full build apps with dev dependencies
164+
$(FULL_BUILD_WITH_DEV_TARGETS): build_%_app:
165+
$(call build_full_app_with_dev,$(patsubst build_%_app,%,$@))
166+
146167
# Dynamic rules for composer-only apps
147168
$(COMPOSER_ONLY_TARGETS): build_%_app:
148169
$(call build_composer_app,$(patsubst build_%_app,%,$@))
@@ -247,7 +268,7 @@ zip_dependencies: patch_shipped_json version.json ## Zip relevant files
247268
@echo "[i] Package $(TARGET_PACKAGE_NAME) created successfully"
248269

249270
# Parallel build targets
250-
build_all_external_apps: $(FULL_BUILD_TARGETS) $(COMPOSER_ONLY_TARGETS) $(NOTHING_TO_BUILD_TARGETS) build_notify_push_app ## Build all external apps
271+
build_all_external_apps: $(FULL_BUILD_TARGETS) $(FULL_BUILD_WITH_DEV_TARGETS) $(COMPOSER_ONLY_TARGETS) $(NOTHING_TO_BUILD_TARGETS) build_notify_push_app ## Build all external apps
251272
@echo "[i] All external apps built successfully"
252273

253274
build_after_external_apps: build_ncw add_config_partials ## Build NCW and add configs after external apps are done

0 commit comments

Comments
 (0)