diff --git a/docs/docs/images/favicon.svg b/docs/docs/images/favicon.svg new file mode 100644 index 000000000..05baa0e85 --- /dev/null +++ b/docs/docs/images/favicon.svg @@ -0,0 +1,66 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/docs/images/logo.svg b/docs/docs/images/logo.svg new file mode 100644 index 000000000..9bef45bfd --- /dev/null +++ b/docs/docs/images/logo.svg @@ -0,0 +1,116 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/docs/index.md b/docs/docs/index.md index d3880397a..1d80d46c9 100644 --- a/docs/docs/index.md +++ b/docs/docs/index.md @@ -1,17 +1,82 @@ -# Welcome to MkDocs +# Welcome to Woodpecker -For full documentation visit [mkdocs.org](https://mkdocs.org). +Woodpecker is a simple CI engine with great extensibility. -## Commands +## .woodpecker.yml -* `mkdocs new [dir-name]` - Create a new project. -* `mkdocs serve` - Start the live-reloading docs server. -* `mkdocs build` - Build the documentation site. -* `mkdocs help` - Print this help message. +- Place your pipeline in a file named `.woodpecker.yml` in your repository +- Pipeline steps can be named as you like +- Run any command in the commands section -## Project layout +```yaml +# .woodpecker.yml +pipeline: + build: + image: debian + commands: + - echo "This is the build step" + a-test-step: + image: debian + commands: + - echo "Testing.." +``` + +## Build steps are containers + +- Define any Docker image as context +- Install the needed tools in custom Docker images, use them as context + +```diff +pipeline: + build: +- image: debian ++ image: mycompany/image-with-awscli + commands: + - aws help +``` + +## File changes are incremental + +- Woodpecker clones the source code in the beginning pipeline +- Changes to files are persisted through steps as the same volume is mounted to all steps + +```yaml +# .woodpecker.yml +pipeline: + build: + image: debian + commands: + - touch myfile + a-test-step: + image: debian + commands: + - cat myfile +``` + +## Plugins are straighforward + +- If you copy the same shell script from project to project +- Pack it into a plugin instead +- And make the yaml declarative +- Plugins are Docker images with your script as an entrypoint + +```Dockerfile +# Dockerfile +FROM laszlocloud/kubectl +COPY deploy /usr/local/deploy +ENTRYPOINT ["/usr/local/deploy"] +``` + +```bash +# deploy +kubectl apply -f $PLUGIN_TEMPLATE +``` + +```yaml +# .woodpecker.yml +pipeline: + deploy-to-k8s: + image: laszlocloud/my-k8s-plugin + template: config/k8s/service.yml +``` - mkdocs.yml # The configuration file. - docs/ - index.md # The documentation homepage. - ... # Other markdown pages, images and other files. diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 74650027a..7f33bf5b6 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -1,3 +1,9 @@ -site_name: My Docs +site_name: Woodpecker theme: - name: 'material' \ No newline at end of file + name: 'material' + logo: 'images/logo.svg' + favicon: 'images/favicon.svg' +markdown_extensions: + - admonition + - codehilite: + linenums: true \ No newline at end of file diff --git a/docs/requirements.txt b/docs/requirements.txt index ff88f2885..0fd03b048 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,19 +1,77 @@ +apache-libcloud==2.3.0 +asn1crypto==0.24.0 +awscli==1.16.89 backports-abc==0.5 +backports.functools-lru-cache==1.5 +backports.ssl-match-hostname==3.5.0.1 +beautifulsoup4==4.8.0 +boto==2.49.0 +botocore==1.12.79 +cachetools==2.0.1 +certifi==2018.4.16 +chardet==3.0.4 Click==7.0 -futures==3.3.0 +colorama==0.3.9 +crcmod==1.7 +cryptography==2.6.1 +docker-py==1.10.6 +docker-pycreds==0.2.2 +docutils==0.14 +enum34==1.1.6 +fluendo-eula==0.6 +futures==3.2.0 +google-api-core==1.2.1 +google-api-python-client==1.6.7 +google-auth==1.4.1 +google-auth-httplib2==0.0.3 +google-cloud-monitoring==0.29.0 +google-compute-engine==20190801.0 +googleapis-common-protos==1.5.3 +grpcio==1.12.1 +gWakeOnLan==0.5.1 +html5lib==1.0.1 htmlmin==0.1.12 +idna==2.6 +ipaddress==1.0.17 Jinja2==2.10.3 jsmin==2.2.2 livereload==2.6.1 +lxml==4.4.1 Markdown==3.1.1 MarkupSafe==1.1.1 mkdocs==1.0.4 mkdocs-material==4.4.3 mkdocs-minify-plugin==0.2.1 +numpy==1.16.2 +oauth2client==4.1.2 pep562==1.0 +protobuf==3.6.0 +pyasn1==0.4.2 +pyasn1-modules==0.2.1 +pycairo==1.16.2 +pydot==1.4.1 +pydot-ng==1.0.0 Pygments==2.4.2 pymdown-extensions==6.1 +pyOpenSSL==19.0.0 +pyparsing==2.2.0 +python-apt==1.9.0+ubuntu1 +python-dateutil==2.7.5 +python-distutils-extra==2.39 +pytz==2018.4 PyYAML==5.1.2 +requests==2.18.4 +rsa==3.4.2 +s3transfer==0.1.13 +scour==0.37 singledispatch==3.4.0.3 -six==1.13.0 +six==1.12.0 +soupsieve==1.9.2 tornado==5.1.1 +unity-lens-photos==1.0 +uritemplate==3.0.0 +urllib3==1.22 +vboxapi==1.0 +virtualenv==15.2.0 +webencodings==0.5.1 +websocket-client==0.47.0