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 listproject 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,PostmanorPytest.--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 theCB_GIT_TOKENand, optionally,CB_GIT_USERNAMEenvironment 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..gitignoreis honored (seepack).--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 forMSTestBinaryandNUnit3Binary.--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):
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,
.gitignoreis honored. Additional exclusions can be listed in a.cbignorefile in the project root, using the same simple syntax (dir/,*.ext,path/to/file)..git,node_modules,.envfiles,*.pemand*.keyfiles, and IDE folders are never included.--listonly prints the files which would be packed.--allincludes git-ignored files as well;.cbignoreand 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?