mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-12-21 07:56:31 +00:00
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:
parent
58303dd2a7
commit
ee97977b93
32 changed files with 4276 additions and 2639 deletions
|
@ -1,6 +1,6 @@
|
|||
# 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)
|
||||
|
||||
|
@ -25,9 +25,9 @@ pipeline:
|
|||
|
||||
### Build steps are containers
|
||||
|
||||
- Define any Docker image as context
|
||||
- either use your own and install the needed tools in custom Docker images, or
|
||||
- search [Docker Hub](https://hub.docker.com/search?type=image) for images that are already tailored for your needs)
|
||||
- Define any container image as context
|
||||
- either use your own and install the needed tools in custom image or
|
||||
- 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
|
||||
|
||||
```diff
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
## 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)
|
||||
|
||||
|
@ -16,9 +16,9 @@ Webhooks are used to trigger pipeline executions. When you push code to your rep
|
|||
|
||||
# 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
|
||||
|
||||
|
@ -73,4 +73,4 @@ pipeline:
|
|||
|
||||
## 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.
|
||||
|
|
|
@ -124,15 +124,9 @@ Woodpecker gives the ability to skip individual commits by adding `[CI SKIP]` to
|
|||
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
|
||||
|
||||
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.
|
||||
|
||||
```diff
|
||||
|
@ -164,7 +158,7 @@ pipeline:
|
|||
|
||||
### `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.
|
||||
|
||||
|
@ -195,7 +189,7 @@ image: index.docker.io/library/golang
|
|||
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
|
||||
pipeline:
|
||||
|
@ -204,7 +198,7 @@ Woodpecker does not automatically upgrade docker images. Example configuration t
|
|||
+ 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.
|
||||
|
||||
|
@ -237,11 +231,11 @@ Example registry hostname matching logic:
|
|||
- Hostname `docker.io` matches `bradyrydzewski/golang`
|
||||
- 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).
|
||||
|
||||
#### 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).
|
||||
|
||||
|
@ -268,7 +262,7 @@ go build
|
|||
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
|
||||
|
@ -290,9 +284,187 @@ For more details check the [secrets docs](/docs/usage/secrets/).
|
|||
|
||||
### `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
|
||||
|
||||
|
@ -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).
|
||||
|
||||
## 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.
|
||||
|
||||
|
@ -400,13 +576,13 @@ git clone https://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.
|
||||
|
||||
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.
|
||||
|
||||
|
@ -453,7 +629,7 @@ Example configuration to clone Mercurial repository:
|
|||
+ 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`:
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
|
|
@ -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.
|
|
@ -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.
|
||||
|
||||
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
|
||||
|
||||
|
@ -81,7 +81,7 @@ pipeline:
|
|||
|
||||
## Status lines
|
||||
|
||||
Each pipeline has its own status line on GitHub.
|
||||
Each pipeline will report its own status back to your forge.
|
||||
|
||||
## Flow control
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
> 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
|
||||
pipeline:
|
||||
|
|
|
@ -13,7 +13,7 @@ A Woodpecker deployment consists of two parts:
|
|||
## Installation
|
||||
|
||||
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
|
||||
- Using [binaries](/docs/downloads)
|
||||
|
||||
|
@ -120,9 +120,9 @@ services:
|
|||
|
||||
## 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
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
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:
|
||||
|
||||
```diff
|
||||
|
@ -76,7 +76,7 @@ services:
|
|||
|
||||
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.
|
||||
|
||||
|
@ -195,7 +195,7 @@ Link to documentation in the UI.
|
|||
### `WOODPECKER_AUTHENTICATE_PUBLIC_REPOS`
|
||||
> 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`
|
||||
> Default: `woodpeckerci/plugin-git:latest`
|
||||
|
@ -354,28 +354,28 @@ Read the value for `WOODPECKER_CONFIG_SERVICE_SECRET` from the specified filepat
|
|||
|
||||
### `WOODPECKER_GITHUB_...`
|
||||
|
||||
See [Github configuration](vcs/github/#configuration)
|
||||
See [Github configuration](forges/github/#configuration)
|
||||
|
||||
### `WOODPECKER_GOGS_...`
|
||||
|
||||
See [Gogs configuration](vcs/gogs/#configuration)
|
||||
See [Gogs configuration](forges/gogs/#configuration)
|
||||
|
||||
### `WOODPECKER_GITEA_...`
|
||||
|
||||
See [Gitea configuration](vcs/gitea/#configuration)
|
||||
See [Gitea configuration](forges/gitea/#configuration)
|
||||
|
||||
### `WOODPECKER_BITBUCKET_...`
|
||||
|
||||
See [Bitbucket configuration](vcs/bitbucket/#configuration)
|
||||
See [Bitbucket configuration](forges/bitbucket/#configuration)
|
||||
|
||||
### `WOODPECKER_STASH_...`
|
||||
|
||||
See [Bitbucket server configuration](vcs/bitbucket_server/#configuration)
|
||||
See [Bitbucket server configuration](forges/bitbucket_server/#configuration)
|
||||
|
||||
### `WOODPECKER_GITLAB_...`
|
||||
|
||||
See [Gitlab configuration](vcs/gitlab/#configuration)
|
||||
See [Gitlab configuration](forges/gitlab/#configuration)
|
||||
|
||||
### `WOODPECKER_CODING_...`
|
||||
|
||||
See [Coding configuration](vcs/coding/#configuration)
|
||||
See [Coding configuration](forges/coding/#configuration)
|
||||
|
|
|
@ -51,7 +51,7 @@ WOODPECKER_CONFIG_SERVICE_SECRET=mysecretsigningkey
|
|||
},
|
||||
"build": {
|
||||
"author": "myUser",
|
||||
"author_avatar": "https://myscm.com/avatars/d6b3f7787a685fcdf2a44e2c685c7e03",
|
||||
"author_avatar": "https://myforge.com/avatars/d6b3f7787a685fcdf2a44e2c685c7e03",
|
||||
"author_email": "my@email.com",
|
||||
"branch": "master",
|
||||
"changed_files": [
|
||||
|
@ -65,7 +65,7 @@ WOODPECKER_CONFIG_SERVICE_SECRET=mysecretsigningkey
|
|||
"event": "push",
|
||||
"finished_at": 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",
|
||||
"number": 0,
|
||||
"parent": 0,
|
||||
|
|
|
@ -10,6 +10,6 @@
|
|||
| Event: Deploy | :white_check_mark: | :x: | :x: |
|
||||
| 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: |
|
||||
| [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)
|
|
@ -1,3 +1,3 @@
|
|||
label: 'Version control systems'
|
||||
label: 'Forges'
|
||||
collapsible: true
|
||||
collapsed: true
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
1
docs/docs/30-administration/22-backends/10-docker.md
Normal file
1
docs/docs/30-administration/22-backends/10-docker.md
Normal file
|
@ -0,0 +1 @@
|
|||
# Docker backend
|
1
docs/docs/30-administration/22-backends/20-local.md
Normal file
1
docs/docs/30-administration/22-backends/20-local.md
Normal file
|
@ -0,0 +1 @@
|
|||
# Local backend
|
4
docs/docs/30-administration/22-backends/_category_.yml
Normal file
4
docs/docs/30-administration/22-backends/_category_.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
label: 'Backends'
|
||||
# position: 3
|
||||
collapsible: true
|
||||
collapsed: true
|
|
@ -31,10 +31,10 @@ A common config for debugging would look like this:
|
|||
WOODPECKER_OPEN=true
|
||||
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/
|
||||
|
||||
# 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_CLIENT=<redacted>
|
||||
WOODPECKER_GITHUB_SECRET=<redacted>
|
||||
|
@ -59,7 +59,7 @@ WOODPECKER_HEALTHCHECK=false
|
|||
|
||||
### 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
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ module.exports = {
|
|||
onBrokenLinks: 'throw',
|
||||
onBrokenMarkdownLinks: 'throw',
|
||||
onDuplicateRoutes: 'throw',
|
||||
favicon: 'img/favicon.ico',
|
||||
organizationName: 'woodpecker-ci',
|
||||
projectName: 'woodpecker-ci.github.io',
|
||||
trailingSlash: false,
|
||||
|
@ -36,7 +35,7 @@ module.exports = {
|
|||
label: 'Plugins',
|
||||
},
|
||||
{
|
||||
to: 'docs/migrations',
|
||||
to: '/docs/migrations',
|
||||
activeBaseRegex: 'docs/migrations',
|
||||
position: 'left',
|
||||
label: 'Migrations',
|
||||
|
@ -47,8 +46,7 @@ module.exports = {
|
|||
label: 'FAQ',
|
||||
},
|
||||
{
|
||||
to: 'docs/awesome',
|
||||
activeBaseRegex: 'docs/awesome',
|
||||
to: '/docs/awesome',
|
||||
position: 'left',
|
||||
label: 'Awesome',
|
||||
},
|
||||
|
@ -134,7 +132,38 @@ module.exports = {
|
|||
indexName: 'woodpecker-ci',
|
||||
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')],
|
||||
presets: [
|
||||
[
|
||||
|
|
|
@ -15,14 +15,14 @@
|
|||
"write-heading-ids": "docusaurus write-heading-ids"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "^2.0.0-beta.15",
|
||||
"@docusaurus/preset-classic": "^2.0.0-beta.15",
|
||||
"@docusaurus/theme-search-algolia": "^2.0.0-beta.15",
|
||||
"@docusaurus/core": "^2.0.0-beta.18",
|
||||
"@docusaurus/preset-classic": "^2.0.0-beta.18",
|
||||
"@docusaurus/theme-search-algolia": "^2.0.0-beta.18",
|
||||
"@mdx-js/react": "^1.6.22",
|
||||
"@svgr/webpack": "^6.1.2",
|
||||
"@svgr/webpack": "^6.2.1",
|
||||
"clsx": "^1.1.1",
|
||||
"file-loader": "^6.2.0",
|
||||
"prism-react-renderer": "^1.2.1",
|
||||
"prism-react-renderer": "^1.3.1",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2",
|
||||
"url-loader": "^4.1.1"
|
||||
|
@ -40,11 +40,11 @@
|
|||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "^2.0.0-beta.15",
|
||||
"@tsconfig/docusaurus": "^1.0.4",
|
||||
"@types/react": "^17.0.37",
|
||||
"@types/react-helmet": "^6.1.4",
|
||||
"@types/react-router-dom": "^5.3.2",
|
||||
"typescript": "^4.5.4"
|
||||
"@docusaurus/module-type-aliases": "^2.0.0-beta.18",
|
||||
"@tsconfig/docusaurus": "^1.0.5",
|
||||
"@types/react": "^17.0.43",
|
||||
"@types/react-helmet": "^6.1.5",
|
||||
"@types/react-router-dom": "^5.3.3",
|
||||
"typescript": "^4.6.3"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,17 +9,17 @@
|
|||
"build": "tsc && tsc -p tsconfig.jsx.json"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "^2.0.0-beta.15",
|
||||
"@docusaurus/theme-classic": "^2.0.0-beta.15",
|
||||
"@docusaurus/types": "^2.0.0-beta.15",
|
||||
"@docusaurus/module-type-aliases": "^2.0.0-beta.18",
|
||||
"@docusaurus/theme-classic": "^2.0.0-beta.18",
|
||||
"@docusaurus/types": "^2.0.0-beta.18",
|
||||
"@octokit/openapi-types": "^11.2.0",
|
||||
"@octokit/rest": "^18.12.0",
|
||||
"@tsconfig/docusaurus": "^1.0.4",
|
||||
"@types/marked": "^4.0.1",
|
||||
"@tsconfig/docusaurus": "^1.0.5",
|
||||
"@types/marked": "^4.0.3",
|
||||
"clsx": "^1.1.1",
|
||||
"concurrently": "^6.4.0",
|
||||
"marked": "^4.0.5",
|
||||
"typescript": "^4.5.2"
|
||||
"concurrently": "^7.0.0",
|
||||
"marked": "^4.0.12",
|
||||
"typescript": "^4.6.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^17.0.2",
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -4,7 +4,7 @@
|
|||
|
||||
Apart from Woodpecker staying free and OpenSource forever, the growing community already introduced some nifty features like:
|
||||
- [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) ...
|
||||
|
||||
## Why is Woodpecker a fork of Drone version 0.8?
|
||||
|
|
74
docs/static/img/favicon.svg
vendored
74
docs/static/img/favicon.svg
vendored
|
@ -1,66 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
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"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
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 xmlns="http://www.w3.org/2000/svg" width="22" height="22">
|
||||
<style>
|
||||
@media (prefers-color-scheme: dark) {
|
||||
path {
|
||||
fill: white;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<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"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 1.8 KiB |
3104
docs/yarn.lock
3104
docs/yarn.lock
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue