For the complete documentation index, see llms.txt. This page is also available as Markdown.

Projects and Code Delivery

Create CloudBeat projects, synchronize them with Git or upload code, and install the AI-assisted setup wizard from the command line

The commands on this page manage CloudBeat projects and deliver test code to them. They are the building blocks of the AI-assisted project setup, and can be used on their own, for example to upload a fresh build of a .NET test project from a pipeline.

All commands support the global --json option (see General options); a project can be referred to by its name or its id.

project list

Lists the projects you have access to, with their id and type:

cloudbeat-cli project list

project create

Creates a project and, depending on the delivery method, starts its first synchronization:

cloudbeat-cli project create --name <name> --type <type> --sync <git|manual|none> [options]

Required options:

  • --name <name> - the project name.

  • --type <type> - the project type: Oxygen, CucumberOxygen, CucumberJava, TestNG, JUnit, KotlinTestNG, KotlinJUnit5, MSTestBinary, NUnit3Binary, Playwright, CucumberJs, BellatrixJs, Cypress, Postman or Pytest.

  • --sync <git|manual|none> - how the code reaches CloudBeat: pulled from a Git repository, uploaded as an archive, or not at all for now.

Git integration (--sync git):

  • --git-url <url> - the repository HTTPS URL. If omitted, it is detected from the Git repository of the current directory (an SSH remote is converted to its HTTPS form).

  • --git-branch <branch> - the branch to synchronize. If omitted, the current branch is used.

  • --git-auth - provide the repository credentials now. The CLI asks for the user name (leave it empty when using an access token) and the token or password with hidden input. In a pipeline, set the CB_GIT_TOKEN and, optionally, CB_GIT_USERNAME environment variables instead. Without --git-auth, the project is created with the URL and branch only - fine for public repositories; for private ones, add the credentials in the project settings in CloudBeat afterwards.

File upload (--sync manual):

  • --dir <dir> - the directory to pack and upload. .gitignore is honored (see pack).

  • --file <zipPath> - an existing zip archive to upload instead.

  • --all - include git-ignored files as well, for example when uploading build output.

Other options:

  • --exec-command <command> - the command CloudBeat runs to execute the tests. The default of the project type is used if omitted.

  • --exec-options <options> - additional execution options (TestNG, JUnit, Cucumber).

  • --assembly-names <names> - the test assembly file names, required for MSTestBinary and NUnit3Binary.

  • --notes <notes> - project notes.

  • --wait - wait for the first synchronization to finish and report its result.

Examples:

Create a Playwright project from the Git repository of the current directory, providing an access token interactively:

Create a pytest project by uploading the current directory:

Create an NUnit project from a build output folder (git-ignored, hence --all):

With --json, a synchronization which failed still returns "ok": true (the project was created); the outcome is in sync.syncStatus (success, failure or in progress), with the reason in sync.message and sync.details.

project sync

Synchronizes an existing project. Without --dir or --file it triggers a Git synchronization; with one of them it packs and uploads the code:

Examples:

project status

Shows the result of the last synchronization of a project:

pack

Packs a project directory into a zip archive, the same way project create --dir and project sync --dir do:

  • Inside a Git repository, .gitignore is honored. Additional exclusions can be listed in a .cbignore file in the project root, using the same simple syntax (dir/, *.ext, path/to/file).

  • .git, node_modules, .env files, *.pem and *.key files, and IDE folders are never included.

  • --list only prints the files which would be packed.

  • --all includes git-ignored files as well; .cbignore and the built-in exclusions still apply.

git-info

Detects the Git repository URL and branch of a directory, as project create --sync git does, and reports conditions which would keep CloudBeat from seeing your latest code: commits that are not pushed, a branch without an upstream, or uncommitted changes.

init

Installs the AI-assisted setup wizard into a test project:

The wizard's commands and skill are copied into the .claude folder of the project. Files which were modified locally are left untouched unless --force is given. Currently supported agent: claude (Claude Code).

sync (legacy)

The older form of an artifact upload, kept for existing pipelines. It uploads a zip archive to a project by id and waits for the synchronization to finish:

New scripts should use project sync, which also accepts a project name and a directory.

Last updated

Was this helpful?