Skip to content

feat: customer adoption and CI tooling (configure, doctor, Docker, CI templates, docs) - #610

Merged
ghoshArnab merged 1 commit into
chore/phase-a-modernizationfrom
feat/customer-ci-adoption
Oct 1, 2026
Merged

ghoshArnab merged 1 commit into
chore/phase-a-modernizationfrom
feat/customer-ci-adoption

Conversation

@ghoshArnab

Copy link
Copy Markdown
Collaborator

Summary

Makes the repository easier for customers to adopt and automate. Stacked on #608 (base is chore/phase-a-modernization; retarget to master after #608 merges).

Configuration without editing files or committing secrets

  • npm run configure (scripts/configure-sdk.js): applies SDK_* environment variables to sdk-config.json (Infinity URL, client IDs, app alias, portal, mashup settings, theme...). SDK_MASHUP_PASSWORD is supplied in plain text and Base64-encoded. Validates required values, --check, --out, --print (secrets masked). 8 unit tests via npm run test:scripts.
  • npm run doctor: pre-flight check (Node version, dependencies, config validity, HTTPS keys, port 3500, Infinity reachability; --offline for CI). Exit code 1 on blocking problems.

CI/CD

  • ci-templates/: GitHub Actions, Azure DevOps, GitLab CI, Jenkinsfile (install, doctor, lint, configure, build, artifact, optional E2E with JUnit + report).
  • Playwright: SDK_E2E_BASE_URL (no more hard-coded localhost), CI reporters (list/html/JUnit/GitHub), screenshots + video on failure, PW_SLOW_MO, PW_WORKERS, optional PW_START_SERVER.
  • Dockerfile (multi-stage, non-root nginx on 8080), docker/nginx.conf (SPA routes for portal/embedded pages, no-store sdk-config.json, immutable asset caching, /healthz), and an entrypoint that renders sdk-config.json from SDK_* variables at container start (build once, deploy many).
  • quality.yml gains a docker job (build and smoke test) and runs the tooling script tests.

Onboarding

  • Docs: getting-started, configuration, ci-cd, customizing, troubleshooting; README quick start; AGENTS.md command table.
  • .nvmrc, .editorconfig, .env.example, .devcontainer/ (Codespaces/Dev Containers), .env git-ignored.

Not verified locally

  • The Dockerfile has not been built locally (no Docker available here). The new docker CI job builds it and smoke-tests it; please check that job is green. The entrypoint logic itself was run locally.
  • The CI templates were not run on their platforms (YAML syntax checked only). The Playwright image tag matches the repo's Playwright version (1.63.0).
  • Playwright E2E not run (needs Infinity).

Validation

  • npm run lint, npm run test:scripts (8 pass), npm run configure:check, npm run doctor -- --offline, npm run docs:components:check — passed
  • playwright test --list loads the modified config (44 tests); CI-mode reporters and webServer toggles checked
  • Docs links checked

… templates, docs)

- scripts: configure-sdk (SDK_* env -> sdk-config.json, validated, tested), doctor
- Playwright: env-driven base URL, CI reporters (JUnit/HTML/GitHub), optional webServer
- Dockerfile + nginx + entrypoint rendering sdk-config at start; CI smoke job
- ci-templates for GitHub Actions, Azure DevOps, GitLab, Jenkins
- docs: getting started, configuration, ci-cd, customizing, troubleshooting; README quick start
- .nvmrc, .editorconfig, .env.example, devcontainer
@ghoshArnab
ghoshArnab merged commit 2c4332f into chore/phase-a-modernization Oct 1, 2026
1 check passed
@ghoshArnab
ghoshArnab deleted the feat/customer-ci-adoption branch October 1, 2026 10:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant