Skip to content

Actions reference

An action is pure data: a parameter declaration plus a shell template. Nothing in the execution path knows about actions — a flow is compiled into a plain script when you save the job, which is why remote runners need no knowledge of them.

There are 29 built-in actions in eight categories.

General

ActionIDWhat it does
Run commandshell.runRuns a shell command in the working directory. The general-purpose action.
Print messageshell.echoWrites a line into the build log. Useful for marking progress.
Waitshell.sleepSleeps for a number of seconds — typically waiting for a service to come up.
Set environment variableshell.envSets a variable for subsequent steps by appending to $WALIS_ENV_FILE.
Change directoryshell.cdSwitches directory; later steps run there too.

Files

ActionIDWhat it does
Create directoryfile.mkdirDoes not fail if the directory already exists.
Copy filefile.copyFiles or directories.
Move filefile.moveMove or rename.
Delete filefile.removeDoes not fail if the path is absent.
Zipfile.zipCompresses a directory or file into a zip.

Git

ActionIDWhat it does
Git clonegit.cloneOptional branch and depth.
Git checkoutgit.checkoutSwitch to a branch or commit.
Git pullgit.pullFetch and merge the latest commits.

Node

ActionIDWhat it does
Install dependenciesnode.installInstalls from the lock file.
Run npm scriptnode.scriptRuns a script from package.json.
Run npx commandnode.npxRuns a command a package provides.

.NET

ActionIDWhat it does
dotnet restoredotnet.restoreRestores NuGet dependencies.
dotnet builddotnet.buildBuilds a project or solution.
dotnet testdotnet.testRuns test projects.
dotnet publishdotnet.publishProduces publish output.

Containers

ActionIDWhat it does
Docker builddocker.buildBuilds an image.
Docker pushdocker.pushPushes an image to a registry.
Docker composedocker.composeBrings services up or updates them.

Deployment

ActionIDWhat it does
SSH remote commanddeploy.sshRuns a command on a remote host — restarting a service, running a deploy script.
rsyncdeploy.rsyncSyncs a directory to a remote host.
scp uploaddeploy.scpCopies files to a remote host.
HTTP requestdeploy.httpCalls an endpoint — triggering a deploy, posting a notification.

Checks

ActionIDWhat it does
File existscheck.fileFails the build when the file is missing.
Command availablecheck.commandFails the build when the command is not on PATH.

Per-step switches

Every step in a flow carries three switches, independent of which action it uses:

  • Enable this step — off means it is skipped without failing the build.
  • Continue on failure — the build carries on past a non-zero exit. Without it, later steps are marked Skipped.
  • Run alongside the previous step — see parallel groups.

Custom actions

A custom action is the same shape as a built-in one, stored as JSON in the database. You declare parameters and write a shell template; the template language is documented in the project's Docs/actions.md. Custom actions travel with export and import.

If you need behaviour rather than a template — logic, branching, calling an API — write a plugin instead.

Released under the MIT License.