diff --git a/roles/docker/defaults/main.yml b/roles/docker/defaults/main.yml index 626e9b3..610257d 100644 --- a/roles/docker/defaults/main.yml +++ b/roles/docker/defaults/main.yml @@ -163,6 +163,12 @@ services: volume_folder: "{{ volume_root_folder }}/drone" version: 1 + woodpecker: + file: woodpecker.yml + domain: "ci.{{ base_domain }}" + volume_folder: "{{ volume_root_folder }}/woodpecker" + version: v0.15 + mailu: file: mailu.yml version: 1.9 diff --git a/roles/docker/tasks/services/woodpecker.yml b/roles/docker/tasks/services/woodpecker.yml new file mode 100644 index 0000000..6128842 --- /dev/null +++ b/roles/docker/tasks/services/woodpecker.yml @@ -0,0 +1,41 @@ +# vim: ft=yaml.ansible +--- +- name: Set up Woodpecker CI with Docker runner + docker_compose: + project_name: woodpecker + pull: true + definition: + version: "3.8" + services: + server: + image: "woodpeckerci/woodpecker-server:{{ services.woodpecker.version }}" + restart: always + networks: + - default + - external_services + volumes: + - "{{ services.woodpecker.volume_folder }}:/data" + - "/var/run/docker.sock:/var/run/docker.sock" + environment: + WOODPECKER_GITEA: "true" + WOODPECKER_GITEA_URL: "https://{{ services.gitea.domain }}" + WOODPECKER_GITEA_CLIENT: "{{ woodpecker_secrets.oauth_client_id }}" + WOODPECKER_GITEA_SECRET: "{{ woodpecker_secrets.oauth_client_secret }}" + WOODPECKER_HOST: "https://{{ services.woodpecker.domain }}" + WOODPECKER_AGENT_SECRET: "{{ woodpecker_secrets.agent_secret }}" + VIRTUAL_HOST: "{{ services.woodpecker.domain }}" + LETSENCRYPT_HOST: "{{ services.woodpecker.domain }}" + LETSENCRYPT_EMAIL: "{{ letsencrypt_email }}" + + agent: + image: "woodpeckerci/woodpecker-agent:{{ services.woodpecker.version }}" + restart: always + volumes: + - "/var/run/docker.sock:/var/run/docker.sock" + environment: + WOODPECKER_SERVER: "server:9000" + WOODPECKER_AGENT_SECRET: "{{ woodpecker_secrets.agent_secret }}" + + networks: + external_services: + external: true