woodpecker/docs/versioned_docs/version-2.4/40-cli.md
manuelluis 9c684b7a22
Add option to set the local repository path to the cli command exec. (#3524)
The cli command exec not handle in a coherent way the repository path
when a directory or filename is given for the pipeline.

` woodpecker-cli exec [command options] [path/to/.woodpecker.yaml]`

If the path to the pipeline is a file in the `.woodpecker` directory,
for example: `.woodpecker/pipeline.yaml`,
the repository path will be: `.woodpecker`

If the path to the pipeline yaml is a directory with more than one
level, for example `ci/woodpecker/`,
the repository path will be:  `ci`

In order not to break the old behavior we added a new option to put the
root directory of the repository:
~~~
woodpecker-cli exec --local --repo-path . --pipeline-event manual
.woodpecker/build.yml
~~~
2024-03-21 00:19:48 +01:00

13 KiB

CLI

NAME

woodpecker-cli - A new cli application

SYNOPSIS

woodpecker-cli

[--config|-c]=[value]
[--disable-update-check]
[--log-file]=[value]
[--log-level]=[value]
[--nocolor]
[--pretty]
[--server|-s]=[value]
[--token|-t]=[value]

DESCRIPTION

Woodpecker command line utility

Usage:

woodpecker-cli [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]

GLOBAL OPTIONS

--config, -c="": path to config file

--disable-update-check: disable update check

--log-file="": Output destination for logs. 'stdout' and 'stderr' can be used as special keywords. (default: "stderr")

--log-level="": set logging level (default: "info")

--nocolor: disable colored debug output, only has effect if pretty output is set too

--pretty: enable pretty-printed debug output

--server, -s="": server address

--token, -t="": server auth token

COMMANDS

pipeline

manage pipelines

ls

show pipeline history

--branch="": branch filter

--event="": event filter

--format="": format output (default: "\x1b[33mPipeline #{{ .Number }} \x1b[0m\nStatus: {{ .Status }}\nEvent: {{ .Event }}\nCommit: {{ .Commit }}\nBranch: {{ .Branch }}\nRef: {{ .Ref }}\nAuthor: {{ .Author }} {{ if .Email }}<{{.Email}}>{{ end }}\nMessage: {{ .Message }}\n")

--limit="": limit the list size (default: 25)

--status="": status filter

last

show latest pipeline details

--branch="": branch name (default: "main")

--format="": format output (default: "Number: {{ .Number }}\nStatus: {{ .Status }}\nEvent: {{ .Event }}\nCommit: {{ .Commit }}\nBranch: {{ .Branch }}\nRef: {{ .Ref }}\nMessage: {{ .Message }}\nAuthor: {{ .Author }}\n")

logs

show pipeline logs

info

show pipeline details

--format="": format output (default: "Number: {{ .Number }}\nStatus: {{ .Status }}\nEvent: {{ .Event }}\nCommit: {{ .Commit }}\nBranch: {{ .Branch }}\nRef: {{ .Ref }}\nMessage: {{ .Message }}\nAuthor: {{ .Author }}\n")

stop

stop a pipeline

start

start a pipeline

--param, -p="": custom parameters to be injected into the step environment. Format: KEY=value

approve

approve a pipeline

decline

decline a pipeline

queue

show pipeline queue

--format="": format output (default: "\x1b[33m{{ .FullName }} #{{ .Number }} \x1b[0m\nStatus: {{ .Status }}\nEvent: {{ .Event }}\nCommit: {{ .Commit }}\nBranch: {{ .Branch }}\nRef: {{ .Ref }}\nAuthor: {{ .Author }} {{ if .Email }}<{{.Email}}>{{ end }}\nMessage: {{ .Message }}\n")

ps

show pipeline steps

--format="": format output (default: "\x1b[33mStep #{{ .PID }} \x1b[0m\nStep: {{ .Name }}\nState: {{ .State }}\n")

create

create new pipeline

--branch="": branch to create pipeline from

--format="": format output (default: "\x1b[33mPipeline #{{ .Number }} \x1b[0m\nStatus: {{ .Status }}\nEvent: {{ .Event }}\nCommit: {{ .Commit }}\nBranch: {{ .Branch }}\nRef: {{ .Ref }}\nAuthor: {{ .Author }} {{ if .Email }}<{{.Email}}>{{ end }}\nMessage: {{ .Message }}\n")

--var="": key=value

log

manage logs

purge

purge a log

deploy

deploy code

--branch="": branch filter (default: "main")

--event="": event filter (default: "push")

--format="": format output (default: "Number: {{ .Number }}\nStatus: {{ .Status }}\nCommit: {{ .Commit }}\nBranch: {{ .Branch }}\nRef: {{ .Ref }}\nMessage: {{ .Message }}\nAuthor: {{ .Author }}\nTarget: {{ .Deploy }}\n")

--param, -p="": custom parameters to be injected into the step environment. Format: KEY=value

--status="": status filter (default: "success")

exec

execute a local pipeline

--backend-docker-api-version="": the version of the API to reach, leave empty for latest.

--backend-docker-cert="": path to load the TLS certificates for connecting to docker server

--backend-docker-host="": path to docker socket or url to the docker server

--backend-docker-ipv6: backend docker enable IPV6

--backend-docker-network="": backend docker network

--backend-docker-tls-verify: enable or disable TLS verification for connecting to docker server

--backend-docker-volumes="": backend docker volumes (comma separated)

--backend-engine="": backend engine to run pipelines on (default: "auto-detect")

--backend-http-proxy="": if set, pass the environment variable down as "HTTP_PROXY" to steps

--backend-https-proxy="": if set, pass the environment variable down as "HTTPS_PROXY" to steps

--backend-k8s-namespace="": backend k8s namespace (default: "woodpecker")

--backend-k8s-pod-annotations="": backend k8s additional worker pod annotations

--backend-k8s-pod-image-pull-secret-names="": backend k8s pull secret names for private registries (default: "regcred")

--backend-k8s-pod-labels="": backend k8s additional worker pod labels

--backend-k8s-secctx-nonroot: run as non root Kubernetes security context option

--backend-k8s-storage-class="": backend k8s storage class

--backend-k8s-storage-rwx: backend k8s storage access mode, should ReadWriteMany (RWX) instead of ReadWriteOnce (RWO) be used? (default: true)

--backend-k8s-volume-size="": backend k8s volume size (default 10G) (default: "10G")

--backend-local-temp-dir="": set a different temp dir to clone workflows into (default: "/tmp")

--backend-no-proxy="": if set, pass the environment variable down as "NO_PROXY" to steps

--commit-author-avatar="":

--commit-author-email="":

--commit-author-name="":

--commit-branch="":

--commit-message="":

--commit-ref="":

--commit-refspec="":

--commit-sha="":

--env="":

--forge-type="":

--forge-url="":

--local: run from local directory

--netrc-machine="":

--netrc-password="":

--netrc-username="":

--network="": external networks

--pipeline-created="": (default: 0)

--pipeline-event="": (default: "manual")

--pipeline-finished="": (default: 0)

--pipeline-number="": (default: 0)

--pipeline-parent="": (default: 0)

--pipeline-started="": (default: 0)

--pipeline-status="":

--pipeline-target="":

--pipeline-url="":

--prev-commit-author-avatar="":

--prev-commit-author-email="":

--prev-commit-author-name="":

--prev-commit-branch="":

--prev-commit-message="":

--prev-commit-ref="":

--prev-commit-refspec="":

--prev-commit-sha="":

--prev-pipeline-created="": (default: 0)

--prev-pipeline-event="":

--prev-pipeline-finished="": (default: 0)

--prev-pipeline-number="": (default: 0)

--prev-pipeline-started="": (default: 0)

--prev-pipeline-status="":

--prev-pipeline-url="":

--privileged="": privileged plugins (default: "plugins/docker", "plugins/gcr", "plugins/ecr", "woodpeckerci/plugin-docker-buildx", "codeberg.org/woodpecker-plugins/docker-buildx")

--repo="": full repo name

--repo-clone-ssh-url="":

--repo-clone-url="":

--repo-path="": path to local repository

--repo-private="":

--repo-remote-id="":

--repo-trusted:

--repo-url="":

--step-name="": (default: 0)

--system-name="": (default: "woodpecker")

--system-platform="":

--system-url="": (default: "https://github.com/woodpecker-ci/woodpecker")

--timeout="": pipeline timeout (default: 1h0m0s)

--volumes="": pipeline volumes

--workflow-name="": (default: 0)

--workflow-number="": (default: 0)

--workspace-base="": (default: "/woodpecker")

--workspace-path="": (default: "src")

info

show information about the current user

registry

manage registries

add

adds a registry

--hostname="": registry hostname (default: "docker.io")

--password="": registry password

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

--username="": registry username

rm

remove a registry

--hostname="": registry hostname (default: "docker.io")

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

update

update a registry

--hostname="": registry hostname (default: "docker.io")

--password="": registry password

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

--username="": registry username

info

display registry info

--hostname="": registry hostname (default: "docker.io")

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

ls

list registries

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

secret

manage secrets

add

adds a secret

--event="": secret limited to these events

--global: global secret

--image="": secret limited to these images

--name="": secret name

--organization, --org="": organization id or full-name (e.g. 123 or octocat)

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

--value="": secret value

rm

remove a secret

--global: global secret

--name="": secret name

--organization, --org="": organization id or full-name (e.g. 123 or octocat)

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

update

update a secret

--event="": secret limited to these events

--global: global secret

--image="": secret limited to these images

--name="": secret name

--organization, --org="": organization id or full-name (e.g. 123 or octocat)

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

--value="": secret value

info

display secret info

--global: global secret

--name="": secret name

--organization, --org="": organization id or full-name (e.g. 123 or octocat)

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

ls

list secrets

--global: global secret

--organization, --org="": organization id or full-name (e.g. 123 or octocat)

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

repo

manage repositories

ls

list all repos

--format="": format output (default: "\x1b[33m{{ .FullName }}\x1b[0m (id: {{ .ID }}, forgeRemoteID: {{ .ForgeRemoteID }})")

--org="": filter by organization

info

show repository details

--format="": format output (default: "Owner: {{ .Owner }}\nRepo: {{ .Name }}\nURL: {{ .ForgeURL }}\nConfig path: {{ .Config }}\nVisibility: {{ .Visibility }}\nPrivate: {{ .IsSCMPrivate }}\nTrusted: {{ .IsTrusted }}\nGated: {{ .IsGated }}\nClone url: {{ .Clone }}\nAllow pull-requests: {{ .AllowPullRequests }}\n")

add

add a repository

update

update a repository

--config="": repository configuration path (e.g. .woodpecker.yml)

--gated: repository is gated

--pipeline-counter="": repository starting pipeline number (default: 0)

--timeout="": repository timeout (default: 0s)

--trusted: repository is trusted

--unsafe: validate updating the pipeline-counter is unsafe

--visibility="": repository visibility

rm

remove a repository

repair

repair repository webhooks

chown

assume ownership of a repository

sync

synchronize the repository list

--format="": format output (default: "\x1b[33m{{ .FullName }}\x1b[0m (id: {{ .ID }}, forgeRemoteID: {{ .ForgeRemoteID }})")

user

manage users

ls

list all users

--format="": format output (default: "{{ .Login }}")

info

show user details

--format="": format output (default: "User: {{ .Login }}\nEmail: {{ .Email }}")

add

adds a user

rm

remove a user

lint

lint a pipeline configuration file

log-level

get the logging level of the server, or set it with [level]

cron

manage cron jobs

add

add a cron job

--branch="": cron branch

--name="": cron name

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

--schedule="": cron schedule

rm

remove a cron job

--id="": cron id

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

update

update a cron job

--branch="": cron branch

--id="": cron id

--name="": cron name

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

--schedule="": cron schedule

info

display info about a cron job

--id="": cron id

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

ls

list cron jobs

--repository, --repo="": repository id or full-name (e.g. 134 or octocat/hello-world)

setup

setup the woodpecker-cli for the first time

--server-url="": The URL of the woodpecker server

--token="": The token to authenticate with the woodpecker server

update

update the woodpecker-cli to the latest version

--force: force update even if the latest version is already installed