From 64f7273ddd9d5167091072b28fc5393e58f7577c Mon Sep 17 00:00:00 2001 From: ilia Date: Thu, 1 Jan 2026 21:48:27 -0500 Subject: [PATCH] CI: fix Jinja2 recursion and license check - Fix recursive loop in configure_app.yml by using hardcoded defaults instead of self-referential variables (app_backend_port, etc.) - Whitelist BlueOak-1.0.0 license (for sax dependency) - All make test checks pass locally --- .gitea/workflows/ci.yml | 2 +- playbooks/app/configure_app.yml | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 3601891..236d984 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -258,7 +258,7 @@ jobs: if [ -f "package.json" ]; then npm ci # Exclude the repo itself (private=true packages are treated as UNLICENSED by license-checker). - license-checker --excludePrivatePackages --onlyAllow 'MIT;Apache-2.0;BSD-3-Clause;ISC;BSD-2-Clause;Python-2.0' + license-checker --excludePrivatePackages --onlyAllow 'MIT;Apache-2.0;BSD-3-Clause;ISC;BSD-2-Clause;Python-2.0;BlueOak-1.0.0' else echo "No package.json found, skipping license check" fi diff --git a/playbooks/app/configure_app.yml b/playbooks/app/configure_app.yml index bbb2576..974ad51 100644 --- a/playbooks/app/configure_app.yml +++ b/playbooks/app/configure_app.yml @@ -117,18 +117,19 @@ app_owner: "{{ project_def.os_user | default(appuser_name) }}" app_group: "{{ project_def.os_user | default(appuser_name) }}" - app_backend_port: "{{ project_def.backend_port | default(app_backend_port) }}" - app_frontend_port: "{{ project_def.frontend_port | default(app_frontend_port) }}" + # Use different variable names to avoid self-referential recursion + app_backend_port: "{{ project_def.backend_port | default(3001) }}" + app_frontend_port: "{{ project_def.frontend_port | default(3000) }}" app_enable_backend: "{{ project_def.components.backend | default(true) }}" app_enable_frontend: "{{ project_def.components.frontend | default(true) }}" - app_backend_install_cmd: "{{ project_def.deploy.backend_install_cmd | default(app_backend_install_cmd) }}" - app_backend_migrate_cmd: "{{ project_def.deploy.backend_migrate_cmd | default(app_backend_migrate_cmd) }}" - app_backend_start_cmd: "{{ project_def.deploy.backend_start_cmd | default(app_backend_start_cmd) }}" + app_backend_install_cmd: "{{ project_def.deploy.backend_install_cmd | default('npm ci') }}" + app_backend_migrate_cmd: "{{ project_def.deploy.backend_migrate_cmd | default('npm run migrate') }}" + app_backend_start_cmd: "{{ project_def.deploy.backend_start_cmd | default('npm start') }}" - app_frontend_install_cmd: "{{ project_def.deploy.frontend_install_cmd | default(app_frontend_install_cmd) }}" - app_frontend_build_cmd: "{{ project_def.deploy.frontend_build_cmd | default(app_frontend_build_cmd) }}" - app_frontend_start_cmd: "{{ project_def.deploy.frontend_start_cmd | default(app_frontend_start_cmd) }}" + app_frontend_install_cmd: "{{ project_def.deploy.frontend_install_cmd | default('npm ci') }}" + app_frontend_build_cmd: "{{ project_def.deploy.frontend_build_cmd | default('npm run build') }}" + app_frontend_start_cmd: "{{ project_def.deploy.frontend_start_cmd | default('npm start') }}" app_env_vars: "{{ env_def.env_vars | default({}) }}" when: app_project != 'pote'