lablup / lablup/backend.ai-webui

feat(WebUI Smoke CLI): scaffold backend.ai-webui-smoke-cli workspace package

Open
#7,380 0 comments 0 reactions 0 assignees View on GitHub
mvp
Dominant language
TypeScript
Stars
133
Forks
81
Avg merge
1d 12h
Merged PRs (30d)
355

Description

## Parent

- Epic: [FR-2871](https://lablup.atlassian.net/browse/FR-2871)
- Spec Task: [FR-2872](https://lablup.atlassian.net/browse/FR-2872)
- Spec: `.specs/FR-2871-webui-smoke-cli/spec.md` § FR-B

## Goal

Create the `backend.ai-webui-smoke-cli` workspace package skeleton with read-only subcommands (`list`, `version`, `run --help`) and the full CLI argument-parsing surface, so later FRs can wire in the actual Playwright runner.

## Acceptance criteria

- [ ] New package at `packages/backend.ai-webui-smoke-cli/` registered in the pnpm workspace.
- [ ] `package.json` exposes a `smoke` bin and a `build` script (tsup or equivalent — implementation choice).
- [ ] `bai-smoke list` prints the available categories and tags resolved from a catalog file.
- [ ] `bai-smoke version` prints CLI version, bundled webui SHA placeholder, and Playwright version.
- [ ] CLI argument parsing layer accepts global options: `--endpoint`, `--webserver`, `--email`, `--password`, `--password-stdin`, `--role`, `--include`, `--exclude`, `--pages`, `--workers`, `--timeout`, `--output`, `--headed`, `--insecure-tls`.
- [ ] All inputs are accepted as CLI flags **or** as `BAI_SMOKE_*` environment variables. The CLI must **not** require editing any `.env` file.
- [ ] `pnpm --filter backend.ai-webui-smoke-cli run smoke -- list` prints the catalog.
- [ ] `pnpm --filter backend.ai-webui-smoke-cli run smoke -- version` prints version info.
- [ ] `pnpm --filter backend.ai-webui-smoke-cli run smoke -- run --help` documents every option above.

## In scope

- `packages/backend.ai-webui-smoke-cli/` (new): `package.json`, `tsconfig.json`, `src/cli.ts`, `src/commands/{list,version,run}.ts`, `src/catalog.ts`
- `pnpm-workspace.yaml` if needed
- Root `package.json` if a workspace alias is added

## Out of scope

- Actually invoking Playwright (covered by FR-C)
- Report post-processing (FR-E), doctor/preflight (FR-D), browser bundling (FR-G), binary build (FR-H)

## Test plan

- `pnpm install` succeeds at the repo root.
- `pnpm --filter backend.ai-webui-smoke-cli run build` succeeds.
- The three subcommand smoke commands above all exit `0` and print expected content.

JIRA Issue: FR-2876

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.