Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3c604ade53 | |||
| 3de556d388 | |||
| 8f229bc645 |
-40
@@ -1,40 +0,0 @@
|
||||
---
|
||||
kind: pipeline
|
||||
name: deploy to swarm-test.autonomic.zone
|
||||
steps:
|
||||
- name: deployment
|
||||
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
|
||||
settings:
|
||||
host: swarm-test.autonomic.zone
|
||||
stack: woodpecker
|
||||
generate_secrets: true
|
||||
purge: true
|
||||
deploy_key:
|
||||
from_secret: drone_ssh_swarm_test
|
||||
networks:
|
||||
- proxy
|
||||
environment:
|
||||
DOMAIN: woodpecker.swarm-test.autonomic.zone
|
||||
STACK_NAME: woodpecker
|
||||
LETS_ENCRYPT_ENV: production
|
||||
WOODPECKER_ENV_VERSION: v1
|
||||
SECRET_AGENT_SECRET_VERSION: v1
|
||||
trigger:
|
||||
branch:
|
||||
- main
|
||||
---
|
||||
kind: pipeline
|
||||
name: generate recipe catalogue
|
||||
steps:
|
||||
- name: release a new version
|
||||
image: plugins/downstream
|
||||
settings:
|
||||
server: https://build.coopcloud.tech
|
||||
token:
|
||||
from_secret: drone_abra-bot_token
|
||||
fork: true
|
||||
repositories:
|
||||
- toolshed/auto-recipes-catalogue-json
|
||||
|
||||
trigger:
|
||||
event: tag
|
||||
+6
-13
@@ -1,30 +1,23 @@
|
||||
TYPE=woodpecker
|
||||
|
||||
STACK_NAME=woodpecker
|
||||
DOMAIN=woodpecker.example.com
|
||||
|
||||
## Domain aliases
|
||||
#EXTRA_DOMAINS=', `www.woodpecker.example.com`'
|
||||
|
||||
LETS_ENCRYPT_ENV=production
|
||||
|
||||
WOODPECKER_OPEN=true
|
||||
WOODPECKER_ADMIN=
|
||||
|
||||
## FORGEJO (Codeberg)
|
||||
WOODPECKER_FORGEJO_URL=https://codeberg.org
|
||||
WOODPECKER_FORGEJO_CLIENT=YOUR_FORGEJO_CLIENT
|
||||
|
||||
## Gitea
|
||||
COMPOSE_FILE="compose.yml:compose.gitea.yml"
|
||||
WOODPECKER_GITEA_URL=https://git.example.org
|
||||
WOODPECKER_GITEA_CLIENT=
|
||||
# see: https://woodpecker-ci.org/docs/administration/vcs/gitea
|
||||
|
||||
## Github
|
||||
# COMPOSE_FILE="compose.yml:compose.github.yml"
|
||||
# WOODPECKER_GITHUB_CLIENT=
|
||||
# WOODPECKER_GITHUB_SECRET=
|
||||
|
||||
## SECRETS
|
||||
SECRET_AGENT_SECRET_VERSION=v1
|
||||
CLIENT_SECRET_VERSION=v1
|
||||
|
||||
## Agent
|
||||
|
||||
WOODPECKER_MAX_PROCS=4
|
||||
WOODPECKER_MAX_WORKFLOWS=4
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
.envrc
|
||||
.env
|
||||
|
||||
@@ -1,24 +1,28 @@
|
||||
# woodpecker
|
||||
# Woodpecker
|
||||
|
||||
> Woodpecker is a community fork of the Drone CI system.
|
||||
Wiki Cafe's configuration for a [Woodpecker](https://woodpecker-ci.org/) deployment.
|
||||
|
||||
<!-- metadata -->
|
||||
|
||||
* **Category**: Apps
|
||||
* **Status**: 0
|
||||
* **Image**: [`woodpecker`](https://hub.docker.com/r/woodpecker), 4, upstream
|
||||
* **Healthcheck**: No
|
||||
* **Backups**: No
|
||||
* **Email**: No
|
||||
* **Tests**: No
|
||||
* **SSO**: No
|
||||
## Deploying the app with Docker Swarm
|
||||
|
||||
<!-- endmetadata -->
|
||||
Set the environment variables from the .env file during the shell session.
|
||||
|
||||
## Quick start
|
||||
```
|
||||
set -a && source .env && set +a
|
||||
```
|
||||
|
||||
* `abra app new woodpecker --secrets`
|
||||
* `abra app config <app-name>`
|
||||
* `abra app deploy <app-name>`
|
||||
Set the secrets.
|
||||
|
||||
Follow the [woodpecker docs](https://woodpecker-ci.org/docs/administration/vcs/gitea) to setup the Gitea oauth app.
|
||||
```
|
||||
printf "%s" "$(openssl rand -hex 32)" | docker secret create woodpecker_agent_secret -
|
||||
```
|
||||
|
||||
```
|
||||
printf "SECRET_HERE" | docker secret create woodpecker_client_secret -
|
||||
```
|
||||
|
||||
Deploy using the `-c` flag to specify one or multiple compose files. Add the `-c` flag for each additional compose file. Here is an example of deploying the `compose.yaml` and `compose.forgejo.yaml` files:
|
||||
|
||||
```
|
||||
docker stack deploy woodpecker --detach=true -c compose.yaml -c compose.forgejo.yaml
|
||||
```
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
services:
|
||||
server:
|
||||
environment:
|
||||
- WOODPECKER_FORGEJO=true
|
||||
- WOODPECKER_FORGEJO_URL
|
||||
- WOODPECKER_FORGEJO_CLIENT
|
||||
- WOODPECKER_FORGEJO_SECRET
|
||||
secrets:
|
||||
- client_secret
|
||||
|
||||
secrets:
|
||||
client_secret:
|
||||
name: ${STACK_NAME}_client_secret
|
||||
external: true
|
||||
@@ -1,7 +1,5 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
app:
|
||||
server:
|
||||
environment:
|
||||
- WOODPECKER_GITEA=true
|
||||
- WOODPECKER_GITEA_URL
|
||||
@@ -12,5 +10,5 @@ services:
|
||||
|
||||
secrets:
|
||||
client_secret:
|
||||
name: ${STACK_NAME}_client_secret_${SECRET_CLIENT_SECRET_VERSION}
|
||||
name: ${STACK_NAME}_client_secret
|
||||
external: true
|
||||
@@ -1,7 +1,5 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
app:
|
||||
server:
|
||||
environment:
|
||||
- WOODPECKER_GITHUB=true
|
||||
- WOODPECKER_GITHUB_CLIENT
|
||||
@@ -11,5 +9,5 @@ services:
|
||||
|
||||
secrets:
|
||||
client_secret:
|
||||
name: ${STACK_NAME}_client_secret_${SECRET_CLIENT_SECRET_VERSION}
|
||||
name: ${STACK_NAME}_client_secret
|
||||
external: true
|
||||
+18
-15
@@ -1,11 +1,8 @@
|
||||
---
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
app:
|
||||
image: woodpeckerci/woodpecker-server:v0.15.6-alpine
|
||||
server:
|
||||
image: woodpeckerci/woodpecker-server:v3.5.2-alpine
|
||||
volumes:
|
||||
- data:/var/lib/woodpecker/
|
||||
- server-data:/var/lib/woodpecker/
|
||||
configs:
|
||||
- source: woodpecker_env
|
||||
target: .env
|
||||
@@ -13,6 +10,8 @@ services:
|
||||
- WOODPECKER_OPEN
|
||||
- WOODPECKER_HOST=https://${DOMAIN}
|
||||
- WOODPECKER_ADMIN
|
||||
- WOODPECKER_ORGS
|
||||
# Additional environment variables are set in the woodpecker_env config and compose merging
|
||||
secrets:
|
||||
- agent_secret
|
||||
networks:
|
||||
@@ -24,21 +23,25 @@ services:
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=8000"
|
||||
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})"
|
||||
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
|
||||
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
|
||||
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
||||
- "coop-cloud.${STACK_NAME}.version=0.1.0+v0.15.6-alpine"
|
||||
- "caddy=${DOMAIN}"
|
||||
- "caddy.reverse_proxy={{upstreams 8000}}"
|
||||
- "caddy.tls.on_demand="
|
||||
- "backupbot.backup=true"
|
||||
|
||||
agent:
|
||||
image: woodpeckerci/woodpecker-agent:v0.15.6-alpine
|
||||
image: woodpeckerci/woodpecker-agent:v3.5.2-alpine
|
||||
command: agent
|
||||
depends_on:
|
||||
- woodpecker-server
|
||||
volumes:
|
||||
- agent-config:/etc/woodpecker/
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
- WOODPECKER_SERVER=app:9000
|
||||
- WOODPECKER_MAX_PROCS
|
||||
- WOODPECKER_SERVER=server:9000
|
||||
- WOODPECKER_MAX_WORKFLOWS
|
||||
networks:
|
||||
- internal
|
||||
configs:
|
||||
@@ -57,16 +60,16 @@ networks:
|
||||
|
||||
|
||||
volumes:
|
||||
data:
|
||||
|
||||
server-data:
|
||||
agent-config:
|
||||
|
||||
configs:
|
||||
woodpecker_env:
|
||||
name: ${STACK_NAME}_woodpecker_env_${WOODPECKER_ENV_VERSION}
|
||||
name: woodpecker_env
|
||||
file: woodpecker.env.tmpl
|
||||
template_driver: golang
|
||||
|
||||
secrets:
|
||||
agent_secret:
|
||||
name: ${STACK_NAME}_agent_secret_${SECRET_AGENT_SECRET_VERSION}
|
||||
name: ${STACK_NAME}_agent_secret
|
||||
external: true
|
||||
@@ -5,3 +5,6 @@ WOODPECKER_GITEA_SECRET={{ secret "client_secret" }}
|
||||
{{ if (env "WOODPECKER_GITHUB_CLIENT") }}
|
||||
WOODPECKER_GITHUB_SECRET={{ secret "client_secret" }}
|
||||
{{ end }}
|
||||
{{ if (env "WOODPECKER_FORGEJO_CLIENT") }}
|
||||
WOODPECKER_FORGEJO_SECRET={{ secret "client_secret" }}
|
||||
{{ end }}
|
||||
|
||||
Reference in New Issue
Block a user