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 ~~~
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