Update and cleanup docs (#851)

- migrate step conditions back into pipeline syntax, but show 2-4 level in toc to be able to see `when` keywords
- create new backend section in admin docs
- update docusaurus
- remove prefix docker of container / container-image where possible
- replace terms SCM, VCS, Github with [forge](https://en.wikipedia.org/wiki/Forge_(software))
- add darkmode favicon variant
This commit is contained in:
Anbraten 2022-04-06 17:15:28 +02:00 committed by GitHub
parent 58303dd2a7
commit ee97977b93
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
32 changed files with 4276 additions and 2639 deletions

View file

@ -1,6 +1,6 @@
# Welcome to Woodpecker # Welcome to Woodpecker
Woodpecker is a simple CI engine with great extensibility. It runs your pipelines inside [Docker](https://www.docker.com/) containers, so if you are already using them in your daily workflow, you'll love Woodpecker for sure. Woodpecker is a simple CI engine with great extensibility. It runs your pipelines inside [containers](https://opencontainers.org/), so if you are already using them in your daily workflow, you'll love Woodpecker for sure.
![woodpecker](woodpecker.png) ![woodpecker](woodpecker.png)
@ -25,9 +25,9 @@ pipeline:
### Build steps are containers ### Build steps are containers
- Define any Docker image as context - Define any container image as context
- either use your own and install the needed tools in custom Docker images, or - either use your own and install the needed tools in custom image or
- search [Docker Hub](https://hub.docker.com/search?type=image) for images that are already tailored for your needs) - search for available images that are already tailored for your needs on container registries like [Docker Hub](https://hub.docker.com/search?type=image)
- List the commands that should be executed in your container, in order to build or test your application - List the commands that should be executed in your container, in order to build or test your application
```diff ```diff

View file

@ -2,9 +2,9 @@
## Repository Activation ## Repository Activation
To activate your project navigate to your account settings. You will see a list of repositories which can be activated with a simple toggle. When you activate your repository, Woodpecker automatically adds webhooks to your version control system (e.g. GitHub). To activate your project navigate to your account settings. You will see a list of repositories which can be activated with a simple toggle. When you activate your repository, Woodpecker automatically adds webhooks to your forge (e.g. GitHub).
Webhooks are used to trigger pipeline executions. When you push code to your repository, open a pull request, or create a tag, your version control system will automatically send a webhook to Woodpecker which will in turn trigger pipeline execution. Webhooks are used to trigger pipeline executions. When you push code to your repository, open a pull request, or create a tag, your forge will automatically send a webhook to Woodpecker which will in turn trigger pipeline execution.
![repository list](repo-list.png) ![repository list](repo-list.png)
@ -16,9 +16,9 @@ Webhooks are used to trigger pipeline executions. When you push code to your rep
# Webhooks # Webhooks
When you activate your repository Woodpecker automatically add webhooks to your version control system (e.g. GitHub). There is no manual configuration required. When you activate your repository Woodpecker automatically add webhooks to your forge (e.g. GitHub). There is no manual configuration required.
Webhooks are used to trigger pipeline executions. When you push code to your repository, open a pull request, or create a tag, your version control system will automatically send a webhook to Woodpecker which will in turn trigger pipeline execution. Webhooks are used to trigger pipeline executions. When you push code to your repository, open a pull request, or create a tag, your forge will automatically send a webhook to Woodpecker which will in turn trigger pipeline execution.
## Configuration ## Configuration
@ -73,4 +73,4 @@ pipeline:
## Execution ## Execution
To trigger your first pipeline execution you can push code to your repository, open a pull request, or push a tag. Any of these events triggers a webhook from your version control system and execute your pipeline. To trigger your first pipeline execution you can push code to your repository, open a pull request, or push a tag. Any of these events triggers a webhook from your forge and execute your pipeline.

View file

@ -124,15 +124,9 @@ Woodpecker gives the ability to skip individual commits by adding `[CI SKIP]` to
git commit -m "updated README [CI SKIP]" git commit -m "updated README [CI SKIP]"
``` ```
## `services`
Woodpecker can provide service containers. They can for example be used to run databases or cache containers during the execution of pipeline.
For more details check the [services docs](/docs/usage/services/).
## Steps ## Steps
Every step of your pipeline executes arbitrary commands inside a specified docker container. The defined commands are executed serially. Every step of your pipeline executes arbitrary commands inside a specified container. The defined commands are executed serially.
The associated commit of a current pipeline run is checked out with git to a workspace which is mounted to every step of the pipeline as the working directory. The associated commit of a current pipeline run is checked out with git to a workspace which is mounted to every step of the pipeline as the working directory.
```diff ```diff
@ -164,7 +158,7 @@ pipeline:
### `image` ### `image`
With the `docker` backend, Woodpecker uses Docker images for the build environment, for plugins and for service containers. The image field is exposed in the container blocks in the Yaml: Woodpecker pulls the defined image and uses it as environment to execute the pipeline step commands, for plugins and for service containers.
When using the `local` backend, the `image` entry is used to specify the shell, such as Bash or Fish, that is used to run the commands. When using the `local` backend, the `image` entry is used to specify the shell, such as Bash or Fish, that is used to run the commands.
@ -195,7 +189,7 @@ image: index.docker.io/library/golang
image: index.docker.io/library/golang:1.7 image: index.docker.io/library/golang:1.7
``` ```
Woodpecker does not automatically upgrade docker images. Example configuration to always pull the latest image when updates are available: Woodpecker does not automatically upgrade container images. Example configuration to always pull the latest image when updates are available:
```diff ```diff
pipeline: pipeline:
@ -204,7 +198,7 @@ Woodpecker does not automatically upgrade docker images. Example configuration t
+ pull: true + pull: true
``` ```
#### Images from private registries ##### Images from private registries
You must provide registry credentials on the UI in order to pull private pipeline images defined in your Yaml configuration file. You must provide registry credentials on the UI in order to pull private pipeline images defined in your Yaml configuration file.
@ -237,11 +231,11 @@ Example registry hostname matching logic:
- Hostname `docker.io` matches `bradyrydzewski/golang` - Hostname `docker.io` matches `bradyrydzewski/golang`
- Hostname `docker.io` matches `bradyrydzewski/golang:latest` - Hostname `docker.io` matches `bradyrydzewski/golang:latest`
#### Global registry support ##### Global registry support
To make a private registry globally available check the [server configuration docs](/docs/administration/server-config#global-registry-setting). To make a private registry globally available check the [server configuration docs](/docs/administration/server-config#global-registry-setting).
#### GCR registry support ##### GCR registry support
For specific details on configuring access to Google Container Registry, please view the docs [here](https://cloud.google.com/container-registry/docs/advanced-authentication#using_a_json_key_file). For specific details on configuring access to Google Container Registry, please view the docs [here](https://cloud.google.com/container-registry/docs/advanced-authentication#using_a_json_key_file).
@ -268,7 +262,7 @@ go build
go test go test
``` ```
The above shell script is then executed as the docker entrypoint. The below docker command is an (incomplete) example of how the script is executed: The above shell script is then executed as the container entrypoint. The below docker command is an (incomplete) example of how the script is executed:
``` ```
docker run --entrypoint=build.sh golang docker run --entrypoint=build.sh golang
@ -290,9 +284,187 @@ For more details check the [secrets docs](/docs/usage/secrets/).
### `when` - Conditional Execution ### `when` - Conditional Execution
Woodpecker supports defining conditional pipeline steps in the `when` block. Woodpecker supports defining conditions for pipeline step by a `when` block. If all conditions in the `when` block evaluate to true the step is executed, otherwise it is skipped.
For more details check the [Conditional Step Execution](/docs/usage/conditional-execution/). #### `repo`
Example conditional execution by repository:
```diff
pipeline:
slack:
image: plugins/slack
settings:
channel: dev
+ when:
+ repo: test/test
```
#### `branch`
Example conditional execution by branch:
```diff
pipeline:
slack:
image: plugins/slack
settings:
channel: dev
+ when:
+ branch: master
```
> The step now triggers on master, but also if the target branch of a pull request is `master`. Add an event condition to limit it further to pushes on master only.
Execute a step if the branch is `master` or `develop`:
```diff
when:
branch: [master, develop]
```
Execute a step if the branch starts with `prefix/*`:
```diff
when:
branch: prefix/*
```
Execute a step using custom include and exclude logic:
```diff
when:
branch:
include: [ master, release/* ]
exclude: [ release/1.0.0, release/1.1.* ]
```
#### `event`
Execute a step if the build event is a `tag`:
```diff
when:
event: tag
```
Execute a step if the build event is a `tag` created from the specified branch:
```diff
when:
event: tag
+ branch: master
```
Execute a step for all non-pull request events:
```diff
when:
event: [push, tag, deployment]
```
Execute a step for all build events:
```diff
when:
event: [push, pull_request, tag, deployment]
```
#### `tag`
Execute a step if the tag name starts with `release`:
```diff
when:
tag: release*
```
#### `status`
There are use cases for executing pipeline steps on failure, such as sending notifications for failed pipelines. Use the status constraint to execute steps even when the pipeline fails:
```diff
pipeline:
slack:
image: plugins/slack
settings:
channel: dev
+ when:
+ status: [ success, failure ]
```
#### `platform`
Execute a step for a specific platform:
```diff
when:
platform: linux/amd64
```
Execute a step for a specific platform using wildcards:
```diff
when:
platform: [ linux/*, windows/amd64 ]
```
#### `environment`
Execute a step for deployment events matching the target deployment environment:
```diff
when:
environment: production
event: deployment
```
#### `matrix`
Execute a step for a single matrix permutation:
```diff
when:
matrix:
GO_VERSION: 1.5
REDIS_VERSION: 2.8
```
#### `instance`
Execute a step only on a certain Woodpecker instance matching the specified hostname:
```diff
when:
instance: stage.woodpecker.company.com
```
#### `path`
:::info
Path conditions are applied only to **push** and **pull_request** events.
It is currently **only available** for GitHub, GitLab.
Gitea only support **push** at the moment ([go-gitea/gitea#18228](https://github.com/go-gitea/gitea/pull/18228)).
:::
Execute a step only on a pipeline with certain files being changed:
```diff
when:
path: "src/*"
```
You can use [glob patterns](https://github.com/bmatcuk/doublestar#patterns) to match the changed files and specify if the step should run if a file matching that pattern has been changed `include` or if some files have **not** been changed `exclude`.
```diff
when:
path:
include: [ '.woodpecker/*.yml', '*.ini' ]
exclude: [ '*.md', 'docs/**' ]
ignore_message: "[ALL]"
```
** Hint: ** Passing a defined ignore-message like `[ALL]` inside the commit message will ignore all path conditions.
### `group` - Parallel execution ### `group` - Parallel execution
@ -334,9 +506,13 @@ Woodpecker gives the ability to detach steps to run them in background until the
For more details check the [service docs](/docs/usage/services#detachment). For more details check the [service docs](/docs/usage/services#detachment).
## Advanced Configurations ## `services`
### `workspace` Woodpecker can provide service containers. They can for example be used to run databases or cache containers during the execution of pipeline.
For more details check the [services docs](/docs/usage/services/).
## `workspace`
The workspace defines the shared volume and working directory shared by all pipeline steps. The default workspace matches the below pattern, based on your repository url. The workspace defines the shared volume and working directory shared by all pipeline steps. The default workspace matches the below pattern, based on your repository url.
@ -400,13 +576,13 @@ git clone https://github.com/octocat/hello-world \
/go/src/github.com/octocat/hello-world /go/src/github.com/octocat/hello-world
``` ```
### `matrix` ## `matrix`
Woodpecker has integrated support for matrix builds. Woodpecker executes a separate build task for each combination in the matrix, allowing you to build and test a single commit against multiple configurations. Woodpecker has integrated support for matrix builds. Woodpecker executes a separate build task for each combination in the matrix, allowing you to build and test a single commit against multiple configurations.
For more details check the [matrix build docs](/docs/usage/matrix-builds/). For more details check the [matrix build docs](/docs/usage/matrix-builds/).
### `clone` ## `clone`
Woodpecker automatically configures a default clone step if not explicitly defined. When using the `local` backend, the [plugin-git](https://github.com/woodpecker-ci/plugin-git) binary must be on your `$PATH` for the default clone step to work. If not, you can still write a manual clone step. Woodpecker automatically configures a default clone step if not explicitly defined. When using the `local` backend, the [plugin-git](https://github.com/woodpecker-ci/plugin-git) binary must be on your `$PATH` for the default clone step to work. If not, you can still write a manual clone step.
@ -453,7 +629,7 @@ Example configuration to clone Mercurial repository:
+ path: bitbucket.org/foo/bar + path: bitbucket.org/foo/bar
``` ```
#### Git Submodules ### Git Submodules
To use the credentials that cloned the repository to clone it's submodules, update `.gitmodules` to use `https` instead of `git`: To use the credentials that cloned the repository to clone it's submodules, update `.gitmodules` to use `https` instead of `git`:
@ -479,7 +655,7 @@ pipeline:
... ...
``` ```
### Privileged mode ## Privileged mode
Woodpecker gives the ability to configure privileged mode in the Yaml. You can use this parameter to launch containers with escalated capabilities. Woodpecker gives the ability to configure privileged mode in the Yaml. You can use this parameter to launch containers with escalated capabilities.

View file

@ -1,183 +0,0 @@
# Conditional Step Execution
Woodpecker supports defining conditions for pipeline step by a `when` block. If all conditions in the `when` block evaluate to true the step is executed, otherwise it is skipped.
## `repo`
Example conditional execution by repository:
```diff
pipeline:
slack:
image: plugins/slack
settings:
channel: dev
+ when:
+ repo: test/test
```
## `branch`
Example conditional execution by branch:
```diff
pipeline:
slack:
image: plugins/slack
settings:
channel: dev
+ when:
+ branch: master
```
> The step now triggers on master, but also if the target branch of a pull request is `master`. Add an event condition to limit it further to pushes on master only.
Execute a step if the branch is `master` or `develop`:
```diff
when:
branch: [master, develop]
```
Execute a step if the branch starts with `prefix/*`:
```diff
when:
branch: prefix/*
```
Execute a step using custom include and exclude logic:
```diff
when:
branch:
include: [ master, release/* ]
exclude: [ release/1.0.0, release/1.1.* ]
```
## `event`
Execute a step if the build event is a `tag`:
```diff
when:
event: tag
```
Execute a step if the build event is a `tag` created from the specified branch:
```diff
when:
event: tag
+ branch: master
```
Execute a step for all non-pull request events:
```diff
when:
event: [push, tag, deployment]
```
Execute a step for all build events:
```diff
when:
event: [push, pull_request, tag, deployment]
```
## `tag`
Execute a step if the tag name starts with `release`:
```diff
when:
tag: release*
```
## `status`
There are use cases for executing pipeline steps on failure, such as sending notifications for failed pipelines. Use the status constraint to execute steps even when the pipeline fails:
```diff
pipeline:
slack:
image: plugins/slack
settings:
channel: dev
+ when:
+ status: [ success, failure ]
```
## `platform`
Execute a step for a specific platform:
```diff
when:
platform: linux/amd64
```
Execute a step for a specific platform using wildcards:
```diff
when:
platform: [ linux/*, windows/amd64 ]
```
## `environment`
Execute a step for deployment events matching the target deployment environment:
```diff
when:
environment: production
event: deployment
```
## `matrix`
Execute a step for a single matrix permutation:
```diff
when:
matrix:
GO_VERSION: 1.5
REDIS_VERSION: 2.8
```
## `instance`
Execute a step only on a certain Woodpecker instance matching the specified hostname:
```diff
when:
instance: stage.woodpecker.company.com
```
## `path`
:::info
This feature is currently only available for GitHub, GitLab and Gitea.
Pull requests aren't supported by gitea at the moment ([go-gitea/gitea#18228](https://github.com/go-gitea/gitea/pull/18228)).
Path conditions are ignored for tag events.
:::
Execute a step only on a pipeline with certain files being changed:
```diff
when:
path: "src/*"
```
You can use [glob patterns](https://github.com/bmatcuk/doublestar#patterns) to match the changed files and specify if the step should run if a file matching that pattern has been changed `include` or if some files have **not** been changed `exclude`.
```diff
when:
path:
include: [ '.woodpecker/*.yml', '*.ini' ]
exclude: [ '*.md', 'docs/**' ]
ignore_message: "[ALL]"
```
** Hint: ** Passing a defined ignore-message like `[ALL]` inside the commit message will ignore all path conditions.

View file

@ -6,7 +6,7 @@ This Feature is only available for GitHub, Gitea & GitLab repositories. Follow [
By default, Woodpecker looks for the pipeline definition in `.woodpecker.yml` in the project root. By default, Woodpecker looks for the pipeline definition in `.woodpecker.yml` in the project root.
The Multi-Pipeline feature allows the pipeline to be split into several files and placed in the `.woodpecker/` folder. Only `.yml` files will be used and files in any subfolders like `.woodpecker/sub-folder/test.yml` will be ignored. You can set some custom path like `.my-ci/pipelines/` instead of `.woodpecker/` in the [project settings](/docs/usage/project-settings). The Multi-Pipeline feature allows the pipeline to be split into several files and placed in the `.woodpecker/` folder. Only `.yml` files will be used and files in any subfolders like `.woodpecker/sub-folder/test.yml` will be ignored. You can set some custom path like `.my-ci/pipelines/` instead of `.woodpecker/` in the [project settings](/docs/usage/project-settings).
## Rational ## Rational
@ -81,7 +81,7 @@ pipeline:
## Status lines ## Status lines
Each pipeline has its own status line on GitHub. Each pipeline will report its own status back to your forge.
## Flow control ## Flow control

View file

@ -2,7 +2,9 @@
Woodpecker gives the ability to define Docker volumes in the Yaml. You can use this parameter to mount files or folders on the host machine into your containers. Woodpecker gives the ability to define Docker volumes in the Yaml. You can use this parameter to mount files or folders on the host machine into your containers.
> Volumes are only available to trusted repositories and for security reasons should only be used in private environments. See [project settings](/docs/usage/project-settings#trusted) to enable trusted mode. :::note
Volumes are only available to trusted repositories and for security reasons should only be used in private environments. See [project settings](/docs/usage/project-settings#trusted) to enable trusted mode.
:::
```diff ```diff
pipeline: pipeline:

View file

@ -13,7 +13,7 @@ A Woodpecker deployment consists of two parts:
## Installation ## Installation
You can install Woodpecker on multiple ways: You can install Woodpecker on multiple ways:
- Using [docker-compose](/docs/administration/setup#docker-compose) with the official [docker images](/docs/downloads#docker-images) - Using [docker-compose](/docs/administration/setup#docker-compose) with the official [container images](/docs/downloads#docker-images)
- By deploying to a [Kubernetes](/docs/administration/kubernetes) with manifests or Woodpeckers official Helm charts - By deploying to a [Kubernetes](/docs/administration/kubernetes) with manifests or Woodpeckers official Helm charts
- Using [binaries](/docs/downloads) - Using [binaries](/docs/downloads)
@ -120,9 +120,9 @@ services:
## Authentication ## Authentication
Authentication is done using OAuth and is delegated to one of multiple version control providers, configured using environment variables. The example above demonstrates basic GitHub integration. Authentication is done using OAuth and is delegated to your forge which is configured by using environment variables. The example above demonstrates basic GitHub integration.
See the complete reference for all supported version control systems [here](/docs/administration/vcs/overview). See the complete reference for all supported forges [here](/docs/administration/forges/overview).
## Database ## Database

View file

@ -4,7 +4,7 @@
Registration is closed by default. While disabled an administrator needs to add new users manually (exp. `woodpecker-cli user add`). Registration is closed by default. While disabled an administrator needs to add new users manually (exp. `woodpecker-cli user add`).
If registration is open every user with an account at the configured [SCM](/docs/administration/vcs/overview) can login to Woodpecker. If registration is open every user with an account at the configured [forges](/docs/administration/forges/overview) can login to Woodpecker.
This example enables open registration for users that are members of approved organizations: This example enables open registration for users that are members of approved organizations:
```diff ```diff
@ -76,7 +76,7 @@ services:
To handle sensitive data in docker-compose or docker-swarm configurations there are several options: To handle sensitive data in docker-compose or docker-swarm configurations there are several options:
For docker-compose you can use a .env file next to your compose condfiguration to store the secrets outside of the compose file. While this separates configuration from secrets it is still not very secure. For docker-compose you can use a .env file next to your compose configuration to store the secrets outside of the compose file. While this separates configuration from secrets it is still not very secure.
Alternatively use docker-secrets. As it may be difficult to use docker secrets for environment variables woodpecker allows to read sensible data from files by providing a `*_FILE` option of all sensible configuration variables. Woodpecker will try to read the value directly from this file. Keep in mind that when the original environment variable gets specified at the same time it will override the value read from the file. Alternatively use docker-secrets. As it may be difficult to use docker secrets for environment variables woodpecker allows to read sensible data from files by providing a `*_FILE` option of all sensible configuration variables. Woodpecker will try to read the value directly from this file. Keep in mind that when the original environment variable gets specified at the same time it will override the value read from the file.
@ -195,7 +195,7 @@ Link to documentation in the UI.
### `WOODPECKER_AUTHENTICATE_PUBLIC_REPOS` ### `WOODPECKER_AUTHENTICATE_PUBLIC_REPOS`
> Default: `false` > Default: `false`
Always use authentication to clone repositories even if they are public. Needed if the SCM requires to always authenticate as used by many companies. Always use authentication to clone repositories even if they are public. Needed if the forge requires to always authenticate as used by many companies.
### `WOODPECKER_DEFAULT_CLONE_IMAGE` ### `WOODPECKER_DEFAULT_CLONE_IMAGE`
> Default: `woodpeckerci/plugin-git:latest` > Default: `woodpeckerci/plugin-git:latest`
@ -354,28 +354,28 @@ Read the value for `WOODPECKER_CONFIG_SERVICE_SECRET` from the specified filepat
### `WOODPECKER_GITHUB_...` ### `WOODPECKER_GITHUB_...`
See [Github configuration](vcs/github/#configuration) See [Github configuration](forges/github/#configuration)
### `WOODPECKER_GOGS_...` ### `WOODPECKER_GOGS_...`
See [Gogs configuration](vcs/gogs/#configuration) See [Gogs configuration](forges/gogs/#configuration)
### `WOODPECKER_GITEA_...` ### `WOODPECKER_GITEA_...`
See [Gitea configuration](vcs/gitea/#configuration) See [Gitea configuration](forges/gitea/#configuration)
### `WOODPECKER_BITBUCKET_...` ### `WOODPECKER_BITBUCKET_...`
See [Bitbucket configuration](vcs/bitbucket/#configuration) See [Bitbucket configuration](forges/bitbucket/#configuration)
### `WOODPECKER_STASH_...` ### `WOODPECKER_STASH_...`
See [Bitbucket server configuration](vcs/bitbucket_server/#configuration) See [Bitbucket server configuration](forges/bitbucket_server/#configuration)
### `WOODPECKER_GITLAB_...` ### `WOODPECKER_GITLAB_...`
See [Gitlab configuration](vcs/gitlab/#configuration) See [Gitlab configuration](forges/gitlab/#configuration)
### `WOODPECKER_CODING_...` ### `WOODPECKER_CODING_...`
See [Coding configuration](vcs/coding/#configuration) See [Coding configuration](forges/coding/#configuration)

View file

@ -51,7 +51,7 @@ WOODPECKER_CONFIG_SERVICE_SECRET=mysecretsigningkey
}, },
"build": { "build": {
"author": "myUser", "author": "myUser",
"author_avatar": "https://myscm.com/avatars/d6b3f7787a685fcdf2a44e2c685c7e03", "author_avatar": "https://myforge.com/avatars/d6b3f7787a685fcdf2a44e2c685c7e03",
"author_email": "my@email.com", "author_email": "my@email.com",
"branch": "master", "branch": "master",
"changed_files": [ "changed_files": [
@ -65,7 +65,7 @@ WOODPECKER_CONFIG_SERVICE_SECRET=mysecretsigningkey
"event": "push", "event": "push",
"finished_at": 0, "finished_at": 0,
"id": 0, "id": 0,
"link_url": "https://myscm.com/myUser/woodpecker-testpipe/commit/2fff90f8d288a4640e90f05049fe30e61a14fd50", "link_url": "https://myforge.com/myUser/woodpecker-testpipe/commit/2fff90f8d288a4640e90f05049fe30e61a14fd50",
"message": "test old config\n", "message": "test old config\n",
"number": 0, "number": 0,
"parent": 0, "parent": 0,

View file

@ -10,6 +10,6 @@
| Event: Deploy | :white_check_mark: | :x: | :x: | | Event: Deploy | :white_check_mark: | :x: | :x: |
| OAuth | :white_check_mark: | :white_check_mark: | :white_check_mark: | | OAuth | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| [Multi pipeline](/docs/usage/multi-pipeline) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: | | [Multi pipeline](/docs/usage/multi-pipeline) | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: |
| [when.path filter](/docs/usage/conditional-execution#path) | :white_check_mark: | :white_check_mark:¹ | :white_check_mark: | :x: | :x: | :x: | :x: | | [when.path filter](/docs/usage/pipeline-syntax#path) | :white_check_mark: | :white_check_mark:¹ | :white_check_mark: | :x: | :x: | :x: | :x: |
¹) [except for pull requests](https://github.com/woodpecker-ci/woodpecker/issues/754) ¹) [except for pull requests](https://github.com/woodpecker-ci/woodpecker/issues/754)

View file

@ -1,3 +1,3 @@
label: 'Version control systems' label: 'Forges'
collapsible: true collapsible: true
collapsed: true collapsed: true

View file

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 129 KiB

View file

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View file

@ -0,0 +1 @@
# Docker backend

View file

@ -0,0 +1 @@
# Local backend

View file

@ -0,0 +1,4 @@
label: 'Backends'
# position: 3
collapsible: true
collapsed: true

View file

@ -31,10 +31,10 @@ A common config for debugging would look like this:
WOODPECKER_OPEN=true WOODPECKER_OPEN=true
WOODPECKER_ADMIN=your-username WOODPECKER_ADMIN=your-username
# if you want to test webhooks with an online SCM like Github this address needs to be accessible from public server # if you want to test webhooks with an online forge like Github this address needs to be accessible from public server
WOODPECKER_HOST=http://your-dev-address.com/ WOODPECKER_HOST=http://your-dev-address.com/
# github (sample for a SCM config - see /docs/administration/vcs/overview for other SCMs) # github (sample for a forge config - see /docs/administration/forge/overview for other forges)
WOODPECKER_GITHUB=true WOODPECKER_GITHUB=true
WOODPECKER_GITHUB_CLIENT=<redacted> WOODPECKER_GITHUB_CLIENT=<redacted>
WOODPECKER_GITHUB_SECRET=<redacted> WOODPECKER_GITHUB_SECRET=<redacted>
@ -59,7 +59,7 @@ WOODPECKER_HEALTHCHECK=false
### Setup O-Auth ### Setup O-Auth
Create an O-Auth app for your SCM as describe in the [SCM documentation](/docs/administration/vcs/overview). If you set `WOODPECKER_DEV_OAUTH_HOST=http://localhost:8000` you can use that address with the path as explained for the specific SCM to login without the need for a public address. For example for Github you would use `http://localhost:8000/authorize` as authorization callback URL. Create an O-Auth app for your forge as describe in the [forges documentation](/docs/administration/forges/overview). If you set `WOODPECKER_DEV_OAUTH_HOST=http://localhost:8000` you can use that address with the path as explained for the specific forge to login without the need for a public address. For example for Github you would use `http://localhost:8000/authorize` as authorization callback URL.
## Developing with VS-Code ## Developing with VS-Code

View file

@ -11,7 +11,6 @@ module.exports = {
onBrokenLinks: 'throw', onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'throw', onBrokenMarkdownLinks: 'throw',
onDuplicateRoutes: 'throw', onDuplicateRoutes: 'throw',
favicon: 'img/favicon.ico',
organizationName: 'woodpecker-ci', organizationName: 'woodpecker-ci',
projectName: 'woodpecker-ci.github.io', projectName: 'woodpecker-ci.github.io',
trailingSlash: false, trailingSlash: false,
@ -36,7 +35,7 @@ module.exports = {
label: 'Plugins', label: 'Plugins',
}, },
{ {
to: 'docs/migrations', to: '/docs/migrations',
activeBaseRegex: 'docs/migrations', activeBaseRegex: 'docs/migrations',
position: 'left', position: 'left',
label: 'Migrations', label: 'Migrations',
@ -47,8 +46,7 @@ module.exports = {
label: 'FAQ', label: 'FAQ',
}, },
{ {
to: 'docs/awesome', to: '/docs/awesome',
activeBaseRegex: 'docs/awesome',
position: 'left', position: 'left',
label: 'Awesome', label: 'Awesome',
}, },
@ -134,7 +132,38 @@ module.exports = {
indexName: 'woodpecker-ci', indexName: 'woodpecker-ci',
debug: false, // Set debug to true if you want to inspect the modal debug: false, // Set debug to true if you want to inspect the modal
}, },
tableOfContents: {
minHeadingLevel: 2,
maxHeadingLevel: 4,
},
}, },
plugins: [
() => ({
name: 'docusaurus-plugin-favicon',
injectHtmlTags() {
return {
headTags: [
{
tagName: 'link',
attributes: {
rel: 'icon',
href: '/img/favicon.ico',
sizes: 'any',
},
},
{
tagName: 'link',
attributes: {
rel: 'icon',
href: '/img/favicon.svg',
type: 'image/svg+xml',
},
},
],
};
},
}),
],
themes: [path.resolve(__dirname, 'plugins', 'woodpecker-plugins', 'dist')], themes: [path.resolve(__dirname, 'plugins', 'woodpecker-plugins', 'dist')],
presets: [ presets: [
[ [

View file

@ -15,14 +15,14 @@
"write-heading-ids": "docusaurus write-heading-ids" "write-heading-ids": "docusaurus write-heading-ids"
}, },
"dependencies": { "dependencies": {
"@docusaurus/core": "^2.0.0-beta.15", "@docusaurus/core": "^2.0.0-beta.18",
"@docusaurus/preset-classic": "^2.0.0-beta.15", "@docusaurus/preset-classic": "^2.0.0-beta.18",
"@docusaurus/theme-search-algolia": "^2.0.0-beta.15", "@docusaurus/theme-search-algolia": "^2.0.0-beta.18",
"@mdx-js/react": "^1.6.22", "@mdx-js/react": "^1.6.22",
"@svgr/webpack": "^6.1.2", "@svgr/webpack": "^6.2.1",
"clsx": "^1.1.1", "clsx": "^1.1.1",
"file-loader": "^6.2.0", "file-loader": "^6.2.0",
"prism-react-renderer": "^1.2.1", "prism-react-renderer": "^1.3.1",
"react": "^17.0.2", "react": "^17.0.2",
"react-dom": "^17.0.2", "react-dom": "^17.0.2",
"url-loader": "^4.1.1" "url-loader": "^4.1.1"
@ -40,11 +40,11 @@
] ]
}, },
"devDependencies": { "devDependencies": {
"@docusaurus/module-type-aliases": "^2.0.0-beta.15", "@docusaurus/module-type-aliases": "^2.0.0-beta.18",
"@tsconfig/docusaurus": "^1.0.4", "@tsconfig/docusaurus": "^1.0.5",
"@types/react": "^17.0.37", "@types/react": "^17.0.43",
"@types/react-helmet": "^6.1.4", "@types/react-helmet": "^6.1.5",
"@types/react-router-dom": "^5.3.2", "@types/react-router-dom": "^5.3.3",
"typescript": "^4.5.4" "typescript": "^4.6.3"
} }
} }

View file

@ -9,17 +9,17 @@
"build": "tsc && tsc -p tsconfig.jsx.json" "build": "tsc && tsc -p tsconfig.jsx.json"
}, },
"devDependencies": { "devDependencies": {
"@docusaurus/module-type-aliases": "^2.0.0-beta.15", "@docusaurus/module-type-aliases": "^2.0.0-beta.18",
"@docusaurus/theme-classic": "^2.0.0-beta.15", "@docusaurus/theme-classic": "^2.0.0-beta.18",
"@docusaurus/types": "^2.0.0-beta.15", "@docusaurus/types": "^2.0.0-beta.18",
"@octokit/openapi-types": "^11.2.0", "@octokit/openapi-types": "^11.2.0",
"@octokit/rest": "^18.12.0", "@octokit/rest": "^18.12.0",
"@tsconfig/docusaurus": "^1.0.4", "@tsconfig/docusaurus": "^1.0.5",
"@types/marked": "^4.0.1", "@types/marked": "^4.0.3",
"clsx": "^1.1.1", "clsx": "^1.1.1",
"concurrently": "^6.4.0", "concurrently": "^7.0.0",
"marked": "^4.0.5", "marked": "^4.0.12",
"typescript": "^4.5.2" "typescript": "^4.6.3"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^17.0.2", "react": "^17.0.2",

File diff suppressed because it is too large Load diff

View file

@ -4,7 +4,7 @@
Apart from Woodpecker staying free and OpenSource forever, the growing community already introduced some nifty features like: Apart from Woodpecker staying free and OpenSource forever, the growing community already introduced some nifty features like:
- [Multi pipelines](/docs/usage/multi-pipeline) - [Multi pipelines](/docs/usage/multi-pipeline)
- [Conditional step execution on file changes](/docs/usage/conditional-execution#path) - [Conditional step execution on file changes](/docs/usage/pipeline-syntax#path)
- [More features are already in the pipeline :wink:](https://github.com/woodpecker-ci/woodpecker/pulls) ... - [More features are already in the pipeline :wink:](https://github.com/woodpecker-ci/woodpecker/pulls) ...
## Why is Woodpecker a fork of Drone version 0.8? ## Why is Woodpecker a fork of Drone version 0.8?

View file

@ -1,66 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22">
<svg <style>
xmlns:dc="http://purl.org/dc/elements/1.1/" @media (prefers-color-scheme: dark) {
xmlns:cc="http://creativecommons.org/ns#" path {
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" fill: white;
xmlns:svg="http://www.w3.org/2000/svg" }
xmlns="http://www.w3.org/2000/svg" }
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" </style>
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" <path d="M1.263 2.744C2.41 3.832 2.845 4.932 4.118 5.08l.036.007c-.588.606-1.09 1.402-1.443 2.423-.38 1.096-.488 2.285-.614 3.659-.19 2.046-.401 4.364-1.556 7.269-2.486 6.258-1.12 11.63.332 17.317.664 2.604 1.348 5.297 1.642 8.107a.857.857 0 00.633.744.86.86 0 00.922-.323c.227-.313.524-.797.86-1.424.84 3.323 1.355 6.13 1.783 8.697a.866.866 0 001.517.41c2.88-3.463 3.763-8.636 2.184-12.674.459-2.433 1.402-4.45 2.398-6.583.536-1.15 1.08-2.318 1.55-3.566.228-.084.569-.314.79-.441l1.707-.981-.256 1.052a.864.864 0 001.678.408l.68-2.858 1.285-2.95a.863.863 0 10-1.581-.687l-1.152 2.669-2.383 1.372a18.97 18.97 0 00.508-2.981c.432-4.86-.718-9.074-3.066-11.266-.163-.157-.208-.281-.247-.26.095-.12.249-.26.358-.374 2.283-1.693 6.047-.147 8.319.75.589.232.876-.337.316-.67-1.95-1.153-5.948-4.196-8.188-6.193-.313-.275-.527-.607-.89-.913C9.825.555 4.072 3.057 1.355 2.569c-.102-.018-.166.103-.092.175m10.98 5.899c-.06 1.242-.603 1.8-1 2.208-.217.224-.426.436-.524.738-.236.714.008 1.51.66 2.143 1.974 1.84 2.925 5.527 2.538 9.86-.291 3.288-1.448 5.763-2.671 8.385-1.031 2.207-2.096 4.489-2.577 7.259a.853.853 0 00.056.48c1.02 2.434 1.135 6.197-.672 9.46a96.586 96.586 0 00-1.97-8.711c1.964-4.488 4.203-11.75 2.919-17.668-.325-1.497-1.304-3.276-2.387-4.207-.208-.18-.402-.237-.495-.167-.084.06-.151.238-.062.444.55 1.266.879 2.599 1.226 4.276 1.125 5.443-.956 12.49-2.835 16.782l-.116.259-.457.982c-.356-2.014-.85-3.95-1.33-5.84-1.38-5.406-2.68-10.515-.401-16.254 1.247-3.137 1.483-5.692 1.672-7.746.116-1.263.216-2.355.526-3.252.905-2.605 3.062-3.178 4.744-2.852 1.632.316 3.24 1.593 3.156 3.42zm-2.868.62a1.177 1.177 0 10.736-2.236 1.178 1.178 0 10-.736 2.237z"/>
viewBox="0 0 22 22"
preserveAspectRatio="xMidYMid meet"
version="1.1"
id="svg45"
sodipodi:docname="favicon.svg"
width="22"
height="22"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata
id="metadata51">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs49" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="3840"
inkscape:window-height="2032"
id="namedview47"
showgrid="false"
inkscape:zoom="28.768"
inkscape:cx="3.33428"
inkscape:cy="29.45752"
inkscape:window-x="0"
inkscape:window-y="54"
inkscape:window-maximized="1"
inkscape:current-layer="g43"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<g
id="g43"
transform="translate(-13.01027,-62.240601)">
<path
fillRule="evenodd"
clipRule="evenodd"
d="m 14.272999,64.98413 c 1.148,1.088 1.582,2.188 2.855,2.337 l 0.036,0.007 c -0.588,0.606 -1.089,1.402 -1.443,2.423 -0.379,1.096 -0.488,2.285 -0.614,3.659 -0.189,2.046 -0.401,4.364001 -1.556,7.269001 -2.486,6.258 -1.119,11.631 0.332,17.317004 0.664,2.604005 1.348,5.297005 1.642,8.107005 0.035,0.355 0.287,0.652 0.633,0.744 0.346,0.095 0.709,-0.035 0.922,-0.323 0.227,-0.313 0.524,-0.797 0.86,-1.424 0.84,3.323 1.355,6.131 1.783,8.697 0.126,0.73 1.048,0.973 1.517,0.41 2.881,-3.463 3.763,-8.636 2.184,-12.674 0.459,-2.433005 1.402,-4.450005 2.398,-6.583009 0.536,-1.15 1.08,-2.318 1.55,-3.566 0.228,-0.084 0.569,-0.314 0.791,-0.441 l 1.706,-0.981 -0.256,1.052 c -0.112,0.461 0.171,0.929 0.635,1.04 0.457,0.118 0.93,-0.173 1.043,-0.632 l 0.68,-2.858 1.285,-2.95 c 0.19,-0.436 -0.009,-0.943 -0.446,-1.135 -0.44,-0.189 -0.947,0.01 -1.135,0.448 l -1.152,2.669 -2.383,1.372 c 0.235,-0.932 0.414,-1.919 0.508,-2.981 0.432,-4.859 -0.718,-9.074 -3.066,-11.266001 -0.163,-0.157 -0.208,-0.281 -0.247,-0.26 0.095,-0.119 0.249,-0.26 0.358,-0.374 2.283,-1.693 6.047,-0.147 8.319,0.751 0.589,0.231 0.876,-0.338 0.316,-0.67 -1.949,-1.154 -5.948,-4.197 -8.188,-6.194 -0.313,-0.275 -0.527,-0.607 -0.89,-0.913 -2.415,-4.266 -8.168,-1.764 -10.885,-2.252 -0.102,-0.018 -0.166,0.103 -0.092,0.175 m 10.98,5.899 c -0.059,1.242 -0.603,1.8 -0.999,2.208 -0.218,0.224 -0.427,0.436 -0.525,0.738 -0.236,0.714 0.008,1.51 0.66,2.143 1.974,1.840001 2.925,5.527001 2.538,9.861001 -0.291,3.287 -1.448,5.762 -2.671,8.384 -1.031,2.207004 -2.096,4.489004 -2.577,7.259009 -0.027,0.161 -0.01,0.33 0.056,0.481 1.021,2.433 1.135,6.196 -0.672,9.46 -0.461,-2.553 -1.053,-5.385 -1.97,-8.712 1.964,-4.488005 4.203,-11.750009 2.919,-17.668009 -0.325,-1.497 -1.304,-3.276 -2.387,-4.207 -0.208,-0.179 -0.402,-0.237 -0.495,-0.167 -0.084,0.061 -0.151,0.238 -0.062,0.444 0.55,1.266 0.879,2.599 1.226,4.276 1.125,5.443 -0.956,12.490004 -2.835,16.782009 l -0.116,0.259 -0.457,0.982 c -0.356,-2.014 -0.849,-3.950005 -1.33,-5.839005 -1.379,-5.407004 -2.679,-10.516004 -0.401,-16.255004 1.247,-3.137 1.483,-5.692001 1.672,-7.746001 0.116,-1.263 0.216,-2.355 0.526,-3.252 0.905,-2.605 3.062,-3.178 4.744,-2.852 1.632,0.316 3.24,1.593 3.156,3.421 z m -2.868,0.621 c 0.617,0.204 1.283,-0.131 1.487,-0.75 0.202,-0.617 -0.134,-1.283 -0.751,-1.487 -0.618,-0.204 -1.285,0.134 -1.487,0.751 -0.204,0.618 0.133,1.284 0.751,1.486 z"
id="path41"
inkscape:connector-curvature="0" />
</g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because it is too large Load diff